uv 是一个用 Rust 编写的 Python 包与项目管理器,当前版本 0.12.12,GitHub 星标约 8.97 万。它把 Python 开发中「建项目、装依赖、跑脚本、装工具、切版本」这五件常事合并进一个命令,官方宣称安装依赖的速度是 pip 的 10 到 100 倍。

先交代两个基础概念:包(package) 指别人写好、可直接引入使用的 Python 代码库,比如处理网络请求的 requests;依赖 指项目所引用的这些包;虚拟环境(virtualenv) 是每个项目独立的运行空间,让不同项目的依赖互不干扰。这套「装包、隔离、锁版本」的流程统称 Python 包管理,uv 就是把这套流程整体提速、并收拢到一个工具里的管理器。

这款工具适合正在用 pip、poetry、pyenv、virtualenv 组合管理 Python 项目的开发者,尤其是嫌依赖解析慢、环境切换麻烦的人;也适合用 Python 写脚本但不想手动建环境的人。

一个命令替代七个常用工具

uv 明确列出了要替代的对象:pip(装包)、pip-tools(锁定依赖版本)、pipx(运行命令行工具)、poetry(项目管理)、pyenv(Python 版本切换)、twine(上传包到 PyPI)、virtualenv(虚拟环境),并称「还有更多」。过去要分别安装、学习、维护的多个工具,现在由 uv 一个二进制承担。

快在哪:Rust 与全局缓存

速度来自两方面。一是 uv 用 Rust 重写——Rust 以高性能著称,Astral 的另一款产品 Ruff(Python 代码检查器)同样以快闻名。二是 全局缓存:下载过的包在磁盘上只存一份,多个项目共用,装新项目时直接复用,不重复下载。官方文档展示的示例中,解析 2 个包的依赖只用了 170 毫秒。

五大能力

项目管理:uv init / add / lock / sync

uv init 建项目,uv add 加依赖,uv lock 生成锁定文件(记录每个依赖的精确版本,保证任何机器装出完全一致的环境),uv sync 一键创建虚拟环境并装好全部依赖。流程与 poetry 类似,但更快。

脚本运行:uv run

给脚本加一行内联依赖声明(uv add --script example.py requests),之后 uv run example.py 即可自动创建隔离环境并运行。适合分发单文件脚本:对方拿到就能跑,不必手动装依赖。

工具运行:uvx

命令行工具不必全局安装:uvx pycowsay 会在临时环境里运行一次;经常用的工具可用 uv tool install 正式安装,功能对应 pipx。

Python 版本管理:uv python

uv python install 3.10 3.11 3.12 一次安装多个 Python 版本,uv python pin 3.11 把当前目录固定到指定版本,覆盖 pyenv 的核心能力,下载与切换同样更快。

pip 兼容接口:uv pip

迁移不必改习惯:uv pip compile 对应 pip-tools 的版本锁定,uv pip sync 按锁定文件安装,uv venv 创建虚拟环境。命令与 pip 生态一致,原工作流可以直接平移。

安装与背景

安装无需预装 Rust 或 Python:macOS 与 Linux 用一条 curl 命令,Windows 用 PowerShell 一行命令,也可以 pip install uv。支持 macOS、Linux、Windows 三大平台。

uv 由 Astral 公司开发,与 Python 生态中流行的极速代码检查器 Ruff 同源;仓库 astral-sh/uv 目前约 8.97 万星标,文档更新于 2026 年 3 月。

结论

uv 的核心价值可以一句话复述:用 Rust 重写的单一工具,把 Python 的装包、建环境、管版本、跑脚本全部提速并统一,迁移时原有 pip 工作流基本不用改。 如果你正被多个包管理工具的切换与速度困扰,可以从下一个新项目开始试用 uv,成本只是一个命令的安装。