新一代 Python 包管理神器 uv:彻底告别 pip 与虚拟环境的烦恼
引言
相信很多 Python 开发者都有过这样的经历:新环境配置依赖漫长又不可控、项目依赖一多解析就卡死、requirements.txt 版本漂移导致“在我电脑上能跑,到你那就崩”……这些问题本质上都源于传统工具链(pip + venv)的限制。
今天,要给大家推荐一款由 Astral 团队(Ruff 的原班人马)打造的新一代 Python 包管理工具——uv。它用 Rust 编写,速度极快,目标是成为“Python 界的 Cargo”,将 pip、pip-tools、pipx、poetry、pyenv、virtualenv 等多个工具统一成一个。
使用 uv 后,你可以获得:
10-100 倍的安装速度:依赖解析和安装快到起飞
一个工具搞定一切:包管理 + 虚拟环境 + Python 版本管理 + 依赖锁定
流畅的现代体验:命令简洁直观,无需激活虚拟环境即可运行
2026 年的一个重磅新闻:uv 的母公司 Astral 已经被 OpenAI 收购,这意味着 uv 背后的技术得到了顶尖 AI 公司的认可,其未来的发展潜力非常值得期待!
一、安装 uv
- 快速安装
Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
使用 pip(不推荐,无法自动配置 PATH)
pip install uv
注意:如果使用 pip 安装后 uv 命令找不到,可能需要手动将 Python 的 Scripts 目录添加到系统环境变量 PATH 中,或者改用官方脚本安装。
- 验证安装
uv --version
# 输出类似 uv 0.7.12
- 配置国内镜像源(解决下载慢问题)
创建或编辑配置文件 ~/.config/uv/uv.toml(Linux/macOS)或 %APPDATA%\uv\uv.toml(Windows),添加以下内容:
[pip]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
或者直接设置环境变量 UV_INDEX_URL。
二、Python 版本管理(替代 pyenv)
uv 可以直接安装和管理多个 Python 版本,无需再装 pyenv。
- 查看可用与已安装版本
uv python list
# 输出所有可用版本
uv python list --only-installed
# 只看已安装的
- 安装指定 Python 版本
# 安装最新版本
uv python install
# 安装特定版本
uv python install 3.11 3.12
# 安装精确补丁版本
uv python install 3.12.3
- 创建不同 Python 版本的虚拟环境
方法一:直接用 --python 指定版本
# 使用 Python 3.11 创建虚拟环境
uv venv --python 3.11
# 使用 Python 3.12 创建
uv venv --python 3.12
如果系统中没有指定版本的 Python,uv 会自动下载并安装。
方法二:在项目中固定版本(推荐)
在项目根目录创建 .python-version 文件,写入 3.11,之后所有 uv 命令都会自动使用该版本。
三、uv 命令配置(PATH 问题解决)
如果 pip install uv 后终端找不到 uv 命令,有以下两种解决方案:
方案一:使用官方安装脚本(推荐)
官方脚本会自动将 uv 添加到 PATH 中,无需手动配置。
方案二:手动添加 PATH
找到 uv 的安装路径后添加到环境变量:
Windows:%APPDATA%\Python\Python3XX\Scripts\
Linux/macOS:~/.local/bin/
常用环境变量配置
| 变量名 | 作用 | 示例 |
|---|---|---|
| UV_INDEX_URL | 设置 PyPI 镜像源 | https://pypi.tuna.tsinghua.edu.cn/simple |
| UV_CACHE_DIR | 自定义缓存目录 | /path/to/cache |
| UV_PYTHON | 设置默认 Python 版本 | 3.11 |
四、常用 uv 命令速查表
项目初始化与依赖管理
| 命令 | 作用 | 等价传统工具 |
|---|---|---|
| uv init myproject | 创建新项目 | mkdir + poetry init |
| uv add requests | 添加依赖 | pip install requests + 手动更新 requirements.txt |
| uv remove requests | 移除依赖 | pip uninstall requests |
| uv sync | 同步所有依赖 | pip install -r requirements.txt |
| uv lock --upgrade | 升级所有依赖 | pip install --upgrade |
包管理(兼容 pip 命令)
| 命令 | 作用 |
|---|---|
| uv pip install numpy | 安装包(pip 兼容模式) |
| uv pip install -r requirements.txt | 安装 requirements 文件 |
| uv pip sync requirements.txt | 严格同步,移除多余依赖 |
| uv pip list | 列出已安装包 |
虚拟环境与运行
| 命令 | 作用 |
|---|---|
| uv venv | 创建虚拟环境(默认 .venv) |
| uv venv --python 3.11 | 指定 Python 版本创建环境 |
| uv run python script.py | 在虚拟环境中运行脚本(无需手动激活) |
| uv run uvicorn main:app --reload | 运行 FastAPI 应用 |
Python 版本管理
| 命令 | 作用 |
|---|---|
| uv python list | 列出可用/已安装版本 |
| uv python install 3.12 | 安装指定版本 |
| uv python install 3.11 3.12 | 安装多个版本 |
| uv python uninstall 3.11 | 卸载版本 |
工具管理(替代 pipx)
| 命令 | 作用 |
|---|---|
| uv tool install ruff | 安装全局工具 |
| uv tool run ruff check . | 运行工具(临时环境) |
| uvx ruff check . | uvx 是 uv tool run 的别名 |
五、uv 的核心优势
- 极速体验(10-100 倍速度提升)
uv 由 Rust 编写,全并发下载 + 智能缓存,性能惊人。实测数据:安装 NumPy+Pandas 仅需 2.3 秒,而 pip 需要 28 秒;重复安装时 uv 仅需 0.5 秒,pip 仍需 12 秒。依赖解析速度比 Poetry 快 8 倍,比 pip 快 115 倍。
- 一个工具,统一工作流
uv 将包管理、虚拟环境、依赖锁定、Python 版本管理、工具链管理五大功能整合到单个工具中,开发者无需在多个工具间切换。
- 虚拟环境无需激活
传统方式需要 source venv/bin/activate,而 uv 直接用 uv run python app.py 即可,简洁优雅。
- 依赖锁定更可靠
uv 使用 PubGrub 算法(与 Rust 的 Cargo 相同)进行依赖解析,能主动报错并提示冲突路径,而非像 pip 那样“装完再说”。
- 磁盘空间高效
uv 的虚拟环境通过符号链接复用基础解释器,每个环境仅需 10MB 级磁盘空间。
六、谁在用 uv?(实际项目案例)
uv 自推出以来,已被众多知名项目和企业采用:
OpenAI:2026 年收购了 uv 的开发公司 Astral,并已将 uv 深度整合到其 AI 工程化流程中。
Cloudflare Workers:官方提供了使用 uv 部署 FastAPI 应用到 Cloudflare Workers 的示例。
Kubeflow:在 PyData 柏林 2025 大会上,Kubeflow 团队演示了使用 uv 来避免依赖地狱(dependency hell)。
Coiled:云平台 Coiled 提供了使用 uv 在云端运行 Python 脚本的完整指南。
Snyk:安全公司 Snyk 已将 uv 集成到其 Python 安全扫描流程中。
七、总结
uv 的出现让 Python 开发者第一次体验到:包管理也可以做到快、轻、准、现代。
| 维度 | uv | pip | conda |
|---|---|---|---|
| 底层语言 | Rust | Python | Python |
| 安装速度 | 极快(快 8-115 倍) | 中等 | 较慢 |
| 依赖解析 | PubGrub 确定性解析 | 简单递归 | SAT 求解器 |
| 虚拟环境 | ✅ 内置 | 需配合 venv | ✅ 内置 |
| Python 版本管理 | ✅ 内置 | ❌ | ✅ 内置 |
| 跨语言依赖 | ❌ | ❌ | ✅ |
如果你还在为 pip 的慢速和虚拟环境的繁琐而烦恼,强烈建议试试 uv——上手后,你可能再也回不去了。
相关资源:
官方文档:https://docs.astral.sh/uv/
GitHub 仓库:https://github.com/astral-sh/uv
PyPI 页面:https://pypi.org/project/uv/
更多推荐



所有评论(0)