用 uv 管理 Python 项目依赖
2026-08-03
之前一个项目里 requirements.txt、venv、pip-tools 混着用,换台机器装环境要折腾半小时。换成 uv 之后,整个流程收敛成三条命令。
日常用法
uv sync # 按 pyproject.toml + uv.lock 装齐,自动建 .venv
uv add pandas # 新增依赖并更新锁文件
uv run script.py # 在项目环境里跑脚本,不用手动 activate
几个让我留下来的点
- 快:解析与安装都是 Rust 写的,一个几十个包的项目冷装十几秒。
- 锁文件跨平台:
uv.lock同时记录 macOS 与 Linux 的解析结果,笔记本上开发、服务器上部署用同一份锁。 - Python 版本一起管:
uv python install 3.12装解释器,不再依赖系统自带那个。
一个坑
脚本要独立运行(不经 uv run)时,记得 shebang 用 .venv/bin/python 的绝对路径,或者在 systemd 单元里写全 ExecStart=/srv/app/.venv/bin/python ...。否则 cron/systemd 的精简环境里找不到解释器,报错信息还很不直观。