Migrate Python dependencies to uv
This commit is contained in:
@@ -19,7 +19,8 @@ main.py FastAPI 后端
|
||||
frontend/index.html 前端页面
|
||||
compose.yaml MySQL Docker Compose 配置
|
||||
schema.sql 数据库建表脚本
|
||||
requirements.txt Python 依赖及版本
|
||||
pyproject.toml 项目元数据和直接依赖
|
||||
uv.lock uv 锁文件(完整、精确的依赖图)
|
||||
.env.example 环境变量示例(不含真实密码)
|
||||
deploy/nginx-todolist.conf Nginx 站点配置
|
||||
deploy/todolist.service systemd 服务配置
|
||||
@@ -30,6 +31,7 @@ deploy/todolist.service systemd 服务配置
|
||||
|
||||
- Windows + WSL2 Ubuntu(当前部署方式)
|
||||
- Python 3.12 或兼容版本
|
||||
- uv 0.11 或兼容版本
|
||||
- Docker Engine 与 Docker Compose 插件
|
||||
- Nginx
|
||||
- systemd(用于后台运行 FastAPI)
|
||||
@@ -38,11 +40,20 @@ deploy/todolist.service systemd 服务配置
|
||||
|
||||
```bash
|
||||
cd /home/dwh/code/fastapi_todolist
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install -r requirements.txt
|
||||
uv sync --locked
|
||||
```
|
||||
|
||||
`uv sync --locked` 会根据 `uv.lock` 创建 `.venv` 并安装已锁定的精确版本。
|
||||
`--locked` 要求锁文件必须与 `pyproject.toml` 一致,不会在部署时悄悄改写依赖解析结果。
|
||||
|
||||
开发时可以使用 uv 在项目环境中运行命令:
|
||||
|
||||
```bash
|
||||
uv run uvicorn main:app --host 127.0.0.1 --port 8000
|
||||
```
|
||||
|
||||
项目的依赖来源是 `pyproject.toml` 和 `uv.lock`。新增或删除依赖时使用 `uv add` 或 `uv remove`,不手动维护第二套依赖清单。
|
||||
|
||||
如果部署用户或目录不同,需要同步修改 `deploy/todolist.service` 中的 `User`、`WorkingDirectory` 和 `ExecStart`。
|
||||
|
||||
## 2. 准备环境变量
|
||||
|
||||
Reference in New Issue
Block a user