一个用 Rust 编写的、速度极快的 Python 包和项目管理器。
全面替代 pip、pip-tools、pipx等工具
速度比 pip 快 10–100 倍
支持通用锁定文件、Cargo 风格工作空间、内联依赖元数据
安装和管理 Python 版本
运行与安装以 Python 包形式发布的工具
提供与 pip 兼容的命令行,性能更高
全局缓存,依赖去重,节省磁盘
无需 Rust 或 Python,通过 curl 即可安装
支持 macOS、Linux、Windows

安装
支持 macOS、Linux、Windows。
# Homebrew
brew install uv
# macOS & Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# wget -qO- https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
自动补全
启用 uv 命令的 shell 自动补全功能:
# bash
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
# zsh
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
# fish
echo 'uv generate-shell-completion fish | source' > ~/.config/fish/completions/uv.fish
# PowerShell
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Add-Content -Path $PROFILE -Value '(& uv generate-shell-completion powershell) | Out-String | Invoke-Expression'
然后重启 shell 或加载 shell 配置文件。
镜像源
国内镜像源:
# 全局指定
uv config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装依赖时指定
uv sync --index-url https://pypi.tuna.tsinghua.edu.cn/simple
# uv 多源配置(pyproject.toml)
[[tool.uv.index]]
url = "https://mirrors.ustc.edu.cn/pypi/simple"
default = true
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple"
[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
使用
Python 管理
安装和管理 Python。
# ==安装 Python==
## 安装最新版本
uv python install
## 安装特定版本
uv python install 3.12
## 重新安装(重新安装所有)
uv python install --reinstall
# ==查看 Python==
## 查看可用和已安装
uv python list
# 仅显示已安装的
uv python list --only-installed
# ==查找 Python==
## 查找已安装的 Python 版本
uv python find
## 查找大于 3.11 Python 版本
uv python find '>=3.11'
## 仅查找系统 Python 解释器
uv python find --system
# ==升级 Python==
# 升级到最新受支持的补丁版本
uv python upgrade 3.12
# 升级所有
uv python upgrade
# ==锁定到特定的 Python 版本==
# 当前项目锁定为使用特定的 Python 版本(.python-version)
uv python pin
# 在用户配置目录中创建全局文件
uv python pin --global
# ==卸载 Python==
# 卸载 Python 版本
uv python uninstall 3.12
# 卸载所有
uv python uninstall --all
项目
创建和开发 Python 项目
# 初始化项目
## 最新 Python 版本初始化
uv init
## 指定 Python 版本初始化
uv init --python 3.12
# ==管理依赖==
## 添加生产依赖
uv add requests
## 添加开发依赖
uv add --dev pytest
## 从requirements.txt文件迁移
uv add -r requirements.txt -c constraints.txt
## 移除依赖
uv remove requests
## 同步依赖
uv sync
## 依赖项锁定文件
uv lock
## 升级软件包
uv lock --upgrade-package requests
# ==项目命令==
## 在项目环境中运行命令
uv run
# #查看项目的依赖关系树
uv tree
## 将项目构建到分发存档中
uv build
## 将项目发布到软件包索引
uv publish
项目结构
.
├── .venv
│ ├── bin
│ ├── lib
│ └── pyvenv.cfg
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── uv.lock
虚拟环境
# ==创建虚拟环境==
## 默认
uv venv [.venv]
## 指定版本
uv venv --python 3.12
# ==激活环境==
## macOS/Linux
source .venv/bin/activate
## Windows
.venv\Scripts\activate
## 退出虚拟环境
deactivate
# ==替换pip==
## 将软件包安装到当前环境中
uv pip install
## 显示已安装软件包的详细信息
uv pip show
## 列出已安装的软件包及其版本
uv pip freeze
## 检查当前环境中是否安装了兼容的软件包
uv pip check
## 列出已安装的软件包
uv pip list
## 卸载软件包
uv pip uninstall
## 查看环境的依赖关系树
uv pip tree
脚本
执行 Python 脚本。
# 运行脚本
uv run main.py
# 向脚本添加依赖项
uv add --script main.py requests
# 移除脚本中的依赖项
uv remove --script main.py
工具
运行和安装发布到 Python 包索引的工具,例如ruff或black。
# 在临时环境中运行工具
uvx/ uv tool run
# 安装一个用户级工具
uv tool install
# 卸载工具
uv tool uninstall
# 列出已安装的工具
uv tool list
# 更新 shell 以包含工具可执行文件
uv tool update-shell
管理检查
uv 的状态,例如缓存、存储目录或执行自我更新:
# 删除缓存条目
uv cache clean
# 删除过期的缓存条目
uv cache prune
# 显示 UV 缓存目录路径
uv cache dir
# 显示 UV 工具目录路径
uv tool dir
# 显示已安装的 Python 版本路径
uv python dir
# 将 uv 更新到最新版本
uv self update
卸载
如果需要从系统中卸载 uv,请按照以下步骤操作:
清理已存储的数据(可选):
uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"
删除 uv、uvx 和 uvw 二进制文件:
# Homebrew
brew uninstall uv
# macOS and Linux
rm ~/.local/bin/uv ~/.local/bin/uvx
# Windows
rm $HOME\.local\bin\uv.exe
rm $HOME\.local\bin\uvx.exe
rm $HOME\.local\bin\uvw.exe
对比
| 工具 | 功能 | 优点 | 缺点 | 适合场景 |
|---|
| virtualenv | 仅创建独立的 Python 环境 | 轻量,简单,灵活 | 依赖管理需要手动配置 | 适合虚拟环境的简单项目 |
| pipenv | 自动管理虚拟环境及依赖 | 管理包依赖、虚拟环境统一,锁定依赖 | 较为重,部分情况下性能较差 | 适合现代 Python 项目,需要依赖锁定的项目 |
| miniconda | Python 和其他语言的环境管理工具 | 支持多语言包管理,特别适合科学计算和数据分析 | 安装包速度较慢,体积较大 | 适合需要跨语言支持的科学计算或数据项目 |
| uv | 高效的环境、依赖管理工具,提供 Python 版本管理及脚本运行等功能 | 更快的性能,跨平台支持,自动化的依赖管理,通用锁定文件 | 新工具,生态尚不成熟,可能会有不稳定性 | 适合需要高效管理、项目复杂度较高的开发者 |