Python 项目的依赖管理常常要同时维护好几套工具:pip 负责装包,virtualenv 管环境,poetry 管项目依赖,pyenv 管 Python 版本。uv 的目标是用一个二进制把这些活全部接走。它是 Astral 公司用 Rust 写的 Python 包与项目管理器,官方称安装依赖比 pip 快 10 到 100 倍,截至 2026 年 8 月在 GitHub 上有 89.3k star,最新版本 0.12.7 于 2026 年 8 月 27 日发布。
uv 是什么
uv 的官方定位是「极速 Python 包与项目管理器」,由 Astral(Ruff 与 ty 的开发者)维护。仓库中 Rust 代码占 98.1%,602 名贡献者累计提交 10,276 次,18,056 个仓库依赖它,共发布 305 个 release。项目采用 Apache-2.0 与 MIT 双许可,代码与文档全部开源。
它的核心思路不是再做一个更快的 pip,而是把 Python 工具链里分散的环节合并成一套命令:项目初始化、依赖解析、环境创建、锁文件、脚本运行、Python 版本安装、工具安装、包发布,全部由 uv 一个命令接管。
一个工具替代七件套
官方 README 列出的替代清单包括:pip(包安装)、pip-tools(依赖锁定)、pipx(命令行工具运行)、poetry(项目依赖管理)、pyenv(Python 版本管理)、twine(包发布)、virtualenv(虚拟环境)。这七个工具各自解决的问题,uv 用一组子命令覆盖。
四个高频场景
项目管理。 uv init 创建项目,uv add 加依赖,uv run 在自动创建的 .venv 中执行命令,uv lock 生成通用锁文件,uv sync 按锁文件同步环境。从初始化到跑起代码,全过程不需要手动激活环境。
单文件脚本。 在脚本开头用 uv add --script 写入内联依赖声明,之后直接 uv run example.py,uv 会为这个脚本单独建环境并安装依赖,跑完即弃。临时脚本不再需要先建环境、再手动装依赖。
命令行工具。 uvx pycowsay 等价于 uv tool run pycowsay,在临时环境中运行 Python 发布的 CLI 工具,不污染全局环境;uv tool install ruff 则把工具安装为可长期使用的命令。
Python 版本管理。 uv python install 3.12 3.13 3.14 一次安装多个版本,uv python pin 3.11 把当前目录固定到指定版本,.python-version 文件随项目走。pyenv 的常用能力在这里是内置功能。
uv pip:存量项目的低门槛迁移
对不想立刻换工作流的项目,uv 提供了与 pip 兼容的接口:uv venv 建环境、uv pip compile requirements.in 编译锁文件、uv pip sync requirements.txt 按清单安装。现有 pip 工作流可以原样跑在 uv 上,先获得速度收益,再逐步迁移到 uv add / uv run 的项目模式。
安装与要求
macOS 与 Linux 用一行命令安装:curl -LsSf https://astral.sh/uv/install.sh | sh;Windows 用 PowerShell 执行 irm https://astral.sh/uv/install.ps1 | iex;也可以用 pip install uv 安装。独立安装器支持 uv self update 自升级。uv 支持 macOS、Linux、Windows 三个平台。
结论
uv 已经把 Python 工具链里最常用的环节统一成了一组命令,官方在 FAQ 中明确表示项目已稳定并广泛用于生产。对新项目,直接用 uv init + uv add + uv run 一套流程即可;对存量项目,把 pip install 换成 uv pip install 就能先享受到速度提升,再按需逐步迁移。