uv能直接替代pip install,具备依赖解析、锁定、安装三合一能力;uv add自动更新pyproject.toml并安装,而pip install仅安装不记录,uv sync则基于uv.lock实现可重现秒级同步。

uv 能直接替代 pip install,且默认就带依赖解析、锁定、安装三合一能力,不需要额外配 pip-tools 或 poetry。
uv add 会自动写入 pyproject.toml 并安装包
传统 pip install 只装不记,uv add 则默认同步更新 pyproject.toml(如果存在)并立即安装。它比 pip install 快数十倍,还避免了“本地能跑、CI 报错”的版本漂移问题。
- 添加生产依赖:
uv add requests fastapi→ 写入[project.dependencies] - 添加开发依赖:
uv add pytest black --group dev→ 写入[project.optional-dependencies.dev] - 指定精确版本:
uv add django@5.1.2或uv add "pydantic>=2.9.0",支持 PEP 508 语法 - 不写入配置、只临时安装?加
--no-edit参数:uv add --no-edit httpx
uv sync 是真正的“一键同步”,不是 pip install -r
uv sync 不是简单执行 pip install -r requirements.txt,而是基于 pyproject.toml + uv.lock 做可重现安装。它会校验锁文件完整性、跳过已满足的包、并发下载,并硬链接复用缓存——这才是极速的核心。
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
- 首次运行
uv sync:自动生成uv.lock,锁定所有传递依赖的 exact 版本 - 后续运行:
uv sync严格按uv.lock安装,不重新解析,秒级完成 - 仅装生产依赖:
uv sync --only-prod(注意是--only-prod,不是--onlyprod,旧版文档有拼写误导) - 跳过已安装包检查(极少数 CI 场景):
uv sync --frozen,要求uv.lock必须存在且未修改
依赖冲突或安装失败时,先看 uv lock 和 Python 版本
uv 安装失败往往不是网络或权限问题,而是解析阶段就卡住——常见于 pyproject.toml 里声明了不兼容的 Python 版本约束,或依赖树中存在无法满足的版本区间。
- 检查当前项目绑定的 Python 版本:
uv python pin(看.python-version),再确认该版本是否已安装:uv python list - 强制重解析锁文件:
uv lock --upgrade(升级全部)或uv lock --upgrade-package requests(只升某包) - 查看解析过程详情(调试用):
uv add requests -v,会输出每一步依赖候选和冲突原因 - 若仍失败,临时禁用环境约束试试:
uv add requests --python-version 3.12,绕过requires-python检查
真正影响速度的从来不是下载带宽,而是依赖图解析和重复编译。uv 的锁文件机制和全局硬链接缓存让「第二次安装」几乎为零开销——但前提是别手动删 uv.lock 或混用 pip install,那会立刻破坏可重现性。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










