用途:系统掌握 uv 的 Python 依赖管理,包括增删包、版本约束、开发与生产依赖分组、锁定文件与版本冲突解决。
主要能力:
- 依赖作用域:主依赖([project] dependencies)、可选附加依赖(optional-dependencies)、开发组([dependency-groups]),适合按用途拆分 dev、test、lint、docs。
- 添加与删除:uv add requests httpx、uv add --dev pytest、uv add --group test pytest-cov、uv add "pandas[excel,plot]"、uv remove requests,支持多包与 extras。
- 版本约束:>=、>=X,<Y、~=、==,开发用宽松、生产用范围或精确版本。
- 更新:uv sync --upgrade、uv lock --upgrade,uv add "requests@2.32.0" 固定具体版本。
- 分组安装:uv sync --group dev --group lint、uv sync --all-groups、uv sync --no-dev。
- 锁定文件:uv.lock 记录精确版本,保证跨机器可复现安装,应纳入版本控制;CI 中用 uv sync --frozen 防止锁不同步。
- 冲突处理:用 uv add --dry-run 排查、调整约束范围或拆分为独立分组。
使用方式:需先安装 uv(curl -LsSf https://astral.sh/uv/install.sh | sh),项目由 uv init 生成 pyproject.toml,Python 3.8+;用 uv tree 查看依赖树。示例场景包括 Web API、可选功能库、数据科学项目、生产更新策略与含本地路径依赖的 monorepo(uv add --editable ../shared-lib)。
限制:资料未提供 uv 的收费、平台支持范围或性能基准;版本冲突只能按上述三种思路缓解,无法保证必然解决。