
UV 极速 Python 包管理器:比 pip 快 10 倍的安装体验
Astral 推出的 UV 用 Rust 重写 Python 包管理,安装速度提升 10 倍,支持全局缓存和锁定文件,正在改变 Python 生态。
原文来源:Astral UV — 用 Rust 编写的极速 Python 包管理器,兼容 pip 但速度提升 10 倍以上,支持全局缓存、锁定文件和 monorepo 工作区。
Python 开发者对 pip 的慢早已习以为常。pip install 一个复杂项目,去泡杯咖啡回来可能还没完。UV 的出现改变了这个现状——它是用 Rust 重写的 Python 包管理器,安装速度比 pip 快 10 倍以上,而且完全兼容现有的 Python 生态。
UV 是什么
UV 由 Astral 团队开发(他们也是 Ruff 的创造者),核心目标很简单:让 Python 包管理变得像 Cargo 或 pnpm 一样快。它不是一个全新的包格式,而是兼容 pip 的 wheels 和 pyproject.toml,所以迁移成本几乎为零。
核心特性包括:
极速安装 — 用 Rust 实现解析和下载逻辑,全局磁盘缓存避免重复下载。大型项目的依赖安装从分钟级降到秒级。
锁定文件支持 — 生成 uv.lock 锁定文件,确保团队所有人的依赖版本完全一致。这是 pip 长期缺失的功能。
工作区支持 — 类似 Cargo workspace 或 pnpm workspace,可以在 monorepo 中管理多个 Python 包,共享虚拟环境。
Python 版本管理 — 内置 uv python 命令,可以安装、切换不同 Python 版本,不需要 pyenv。
安装 UV
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"安装后 uv 命令立即可用,不需要额外配置。
日常使用
创建项目
uv init myproject
cd myproject这会生成标准的 pyproject.toml 和虚拟环境。
添加依赖
uv add requests flaskUV 会自动解析依赖树、下载包、更新 pyproject.toml 和 uv.lock。
运行脚本
uv run python main.pyUV 会自动激活虚拟环境并运行,不需要手动 source venv/bin/activate。
锁定依赖
uv lock生成 uv.lock 文件,提交到 Git 后团队成员运行 uv sync 即可获得完全一致的依赖环境。
从 pip 迁移
迁移非常简单。现有项目只需要:
# 在现有项目目录
uv pip install -r requirements.txt
uv lock然后删除 requirements.txt,以后用 uv add 管理依赖即可。如果暂时不想改工作流,也可以直接用 uv pip 替代 pip:
uv pip install requests # 比 pip install requests 快 10 倍为什么比 pip 快
UV 的速度来自几个设计决策:
并行下载和解析 — pip 是顺序执行的,UV 并行处理多个包的下载和依赖解析。
全局缓存 — 同一个包在不同项目中不需要重复下载,缓存位于 ~/.cache/uv。
Rust 实现 — 解析依赖树和计算版本约束的算法用 Rust 实现,避免了 Python 的 GIL 限制。
更少的网络请求 — UV 会批量获取元数据,减少 PyPI API 调用次数。
适用场景
| 场景 | 推荐方案 |
|---|---|
| 个人项目 | 完全替代 pip |
| 团队协作 | 用 uv.lock 锁定依赖 |
| Monorepo | 用 workspace 管理多包 |
| CI/CD | uv sync 比 pip install 快得多 |
| 需要 pyenv | 用 uv python 替代 |
总结
UV 不是 pip 的增量改进,而是 Python 包管理的重新设计。它保留了 Python 生态的兼容性,同时带来了现代包管理器的速度和可靠性。对于每天和依赖打交道的 Python 开发者来说,UV 可能是 2026 年最值得升级的工具之一。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/tutorials/uv-python-package-manager