痛点
Python 的包管理工具链是出了名的碎。装包用 pip,锁依赖用 pip-tools,隔离环境用 virtualenv,装命令行工具用 pipx,每个都有独立的版本、独立的缓存、独立的坑。
uv 的目标是把这一整堆收进一个二进制文件里。
常用命令
# 装包(会自动建虚拟环境)
uv add requests
# 装开发依赖
uv add --dev pytest ruff
# 同步锁文件里的依赖
uv sync
# 跑一个隔离的临时脚本
uv run python script.py
# 装一个命令行工具(相当于 pipx)
uv tool install ruff速度快在哪
它没有复用 pip 的实现,而是自己实现了 Python 包索引的解析、wheel 的下载解压、依赖求解,而且做了全局缓存和硬链接。同一个包在多个虚拟环境里不会重复占磁盘。
实际感受是 uv sync 在大项目上通常在秒级完成,而同样的操作 pip install 可能要几十秒。
值得注意的点
- 建议新项目直接用,老项目谨慎迁移:它对标准
pyproject.toml的支持是完整的,但某些构建后端和私有源的老坑还需要绕。 - Python 版本管理:uv 也管 Python 版本(
uv python install 3.13),这和 pyenv 之类的功能有重叠,可以二选一。 - 内部镜像源:支持
UV_INDEX_URL、私有源和--index-strategy控制,和企业环境的配合还需要按你们的源来配。
新人用起来几乎没有学习成本,团队从 pip 迁过来主要是要改 CI 里的安装命令。
Next project →Biome
