CodeReview/backend/UV_MIGRATION.md

1.7 KiB
Raw Blame History

迁移到 uv 依赖管理器

已完成的工作

  1. 初始化 uv 项目

    • 创建了 pyproject.toml 配置文件
    • 所有依赖已迁移到 pyproject.toml
  2. 依赖管理

    • 使用 uv sync 安装所有依赖
    • 创建了 .venv 虚拟环境uv 自动管理)
    • 生成了 requirements-lock.txt 锁定文件
  3. 工具和脚本

    • 创建了 start.sh 启动脚本
    • 创建了 README_UV.md 使用文档

📝 使用方式

启动服务

cd backend
./start.sh

或手动启动:

cd backend
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

数据库迁移

cd backend
uv run alembic upgrade head

添加新依赖

cd backend
uv add package-name

🔄 从旧环境迁移

如果你之前使用 venvpip

  1. 删除旧虚拟环境(可选):

    rm -rf venv
    
  2. 使用 uv 同步

    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