83 lines
1.7 KiB
Markdown
83 lines
1.7 KiB
Markdown
|
|
# 迁移到 uv 依赖管理器
|
|||
|
|
|
|||
|
|
## ✅ 已完成的工作
|
|||
|
|
|
|||
|
|
1. **初始化 uv 项目**
|
|||
|
|
- 创建了 `pyproject.toml` 配置文件
|
|||
|
|
- 所有依赖已迁移到 `pyproject.toml`
|
|||
|
|
|
|||
|
|
2. **依赖管理**
|
|||
|
|
- 使用 `uv sync` 安装所有依赖
|
|||
|
|
- 创建了 `.venv` 虚拟环境(uv 自动管理)
|
|||
|
|
- 生成了 `requirements-lock.txt` 锁定文件
|
|||
|
|
|
|||
|
|
3. **工具和脚本**
|
|||
|
|
- 创建了 `start.sh` 启动脚本
|
|||
|
|
- 创建了 `README_UV.md` 使用文档
|
|||
|
|
|
|||
|
|
## 📝 使用方式
|
|||
|
|
|
|||
|
|
### 启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd backend
|
|||
|
|
./start.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或手动启动:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd backend
|
|||
|
|
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 数据库迁移
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd backend
|
|||
|
|
uv run alembic upgrade head
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 添加新依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd backend
|
|||
|
|
uv add package-name
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔄 从旧环境迁移
|
|||
|
|
|
|||
|
|
如果你之前使用 `venv` 和 `pip`:
|
|||
|
|
|
|||
|
|
1. **删除旧虚拟环境**(可选):
|
|||
|
|
```bash
|
|||
|
|
rm -rf venv
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **使用 uv 同步**:
|
|||
|
|
```bash
|
|||
|
|
uv sync
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **之后使用 `uv run` 运行所有命令**
|
|||
|
|
|
|||
|
|
## 📦 依赖文件说明
|
|||
|
|
|
|||
|
|
- `pyproject.toml` - 项目配置和依赖声明(主要文件)
|
|||
|
|
- `requirements.txt` - 保留用于兼容性,但建议使用 `pyproject.toml`
|
|||
|
|
- `requirements-lock.txt` - 自动生成的锁定文件(确保可复现)
|
|||
|
|
|
|||
|
|
## ⚠️ 注意事项
|
|||
|
|
|
|||
|
|
- uv 创建的虚拟环境在 `.venv/` 目录(不是 `venv/`)
|
|||
|
|
- 使用 `uv run` 运行命令会自动使用正确的虚拟环境
|
|||
|
|
- 也可以手动激活:`source .venv/bin/activate`
|
|||
|
|
|
|||
|
|
## 🎯 优势
|
|||
|
|
|
|||
|
|
- ⚡ **速度快**:比 pip 快 10-100 倍
|
|||
|
|
- 🔒 **可复现**:自动生成锁定文件
|
|||
|
|
- 🎯 **简单**:一个命令管理所有依赖
|
|||
|
|
- 🔄 **兼容**:完全兼容 pip 和 requirements.txt
|
|||
|
|
|