CodeReview/backend/UV_MIGRATION.md

83 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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