CodeReview/backend/UV_MIGRATION.md

83 lines
1.7 KiB
Markdown
Raw Normal View History

# 迁移到 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