94 lines
1.5 KiB
Markdown
94 lines
1.5 KiB
Markdown
|
|
# 使用 uv 管理 Python 依赖
|
|||
|
|
|
|||
|
|
本项目已迁移到使用 [uv](https://github.com/astral-sh/uv) 作为 Python 依赖管理器。
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 安装 uv
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# macOS/Linux
|
|||
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|||
|
|
|
|||
|
|
# 或使用 Homebrew
|
|||
|
|
brew install uv
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd backend
|
|||
|
|
uv sync
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这会自动创建虚拟环境并安装所有依赖。
|
|||
|
|
|
|||
|
|
### 运行项目
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 激活虚拟环境(uv 会自动管理)
|
|||
|
|
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|||
|
|
|
|||
|
|
# 或使用 uv 直接运行
|
|||
|
|
uv run python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据库迁移
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
uv run alembic upgrade head
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 添加新依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 添加依赖
|
|||
|
|
uv add package-name
|
|||
|
|
|
|||
|
|
# 添加开发依赖
|
|||
|
|
uv add --dev package-name
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 更新依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
uv sync --upgrade
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 其他常用命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看已安装的包
|
|||
|
|
uv pip list
|
|||
|
|
|
|||
|
|
# 运行 Python 脚本
|
|||
|
|
uv run python script.py
|
|||
|
|
|
|||
|
|
# 运行 Alembic 命令
|
|||
|
|
uv run alembic <command>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 从 pip/venv 迁移
|
|||
|
|
|
|||
|
|
如果你之前使用 pip 和 venv:
|
|||
|
|
|
|||
|
|
1. 删除旧的虚拟环境(可选):
|
|||
|
|
```bash
|
|||
|
|
rm -rf venv
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 使用 uv 同步依赖:
|
|||
|
|
```bash
|
|||
|
|
uv sync
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 之后使用 `uv run` 运行命令,或激活 uv 创建的虚拟环境。
|
|||
|
|
|
|||
|
|
## 优势
|
|||
|
|
|
|||
|
|
- **速度快**:比 pip 快 10-100 倍
|
|||
|
|
- **可复现**:自动生成锁文件
|
|||
|
|
- **简单**:一个命令管理所有依赖
|
|||
|
|
- **兼容**:完全兼容 pip 和 requirements.txt
|
|||
|
|
|