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

