uv

uv

用 Rust 编写的 Python 包与项目管理器,安装依赖比 pip 快得多

核心功能

面向 Python 开发者的一体化包与项目管理器,用一个命令解决安装依赖、锁定版本、创建虚拟环境、管理 Python 版本和运行工具等分散在多个工具里的工作。适合被 pip、pip-tools、virtualenv、pyenv 来回切换困扰、且在意安装速度的个人开发者与团队。

功能亮点

极快的依赖解析

官方基准显示安装速度比 pip 快 10-100 倍,热缓存下几乎瞬间完成

一个工具顶一串

覆盖 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 的常用职责

通用锁文件与工作区

生成跨平台通用锁文件,并支持 Cargo 风格 workspaces 组织多包项目

全局缓存去重

依赖统一存放在全局缓存中做去重,多个项目共享同一份文件节省磁盘

免前置依赖安装

独立安装脚本不要求系统预装 Rust 或 Python,curl 一行即可装好

适用场景

• 新建 Python 项目并用锁文件锁定依赖,保证本地与 CI 安装结果一致
• 在 CI 中替换 pip 安装依赖,缩短构建阶段的依赖安装耗时
• 用 uvx 临时运行 ruff、black 等命令行工具,不污染当前环境

安装配置

bash
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh

macOS / Linux(没有 curl 时用 wget):
wget -qO- https://astral.sh/uv/install.sh | sh

Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Homebrew:
brew install uv

pipx(官方推荐的 PyPI 安装方式,装进隔离环境):
pipx install uv

pip:
pip install uv

WinGet:
winget install --id=astral-sh.uv  -e

Scoop:
scoop install main/uv

MacPorts:
sudo port install uv

使用方法

bash
uv init example        # 创建一个新的 Python 项目
uv add ruff            # 添加依赖并写入 pyproject.toml
uv remove ruff         # 移除依赖
uv run ruff check      # 在项目环境中执行命令
uv lock                # 生成 / 更新锁文件
uv sync                # 让环境与锁文件保持一致
uv tree                # 查看项目依赖树
uv build               # 构建分发包
uv publish             # 发布到包索引
uvx ruff               # 在临时环境中直接运行工具
uv tool install ruff   # 把工具安装到用户级
uv python install      # 安装 Python 版本
uv python pin          # 为当前项目固定 Python 版本
uv venv                # 创建虚拟环境
uv pip install <包名>  # 使用 pip 兼容接口安装包
uv cache clean         # 清理缓存

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标uv
价格免费
开源
上手难度入门

相关工具

同类工具

优点

  • 官方基准中依赖安装比 pip 快 10-100 倍(BENCHMARKS.md)
  • 一个二进制替代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等多个工具
  • 独立安装脚本不依赖系统上的 Rust 或 Python,Windows 也有对应 PowerShell 脚本
  • 全局缓存对依赖做去重,多项目共用同一份文件,磁盘占用更低

缺点

  • uv pip 只是接口相似,官方明确说明行为并不完全等同 pip,偏门用法差异会变大
  • 若目标平台没有预编译 wheel,从 PyPI 安装时需要本机具备 Rust 工具链才能源码构建
  • 仍处于 0.x 版本线,迭代快,团队需要留意版本升级带来的行为变化