●如果你曾经历过以下场景:
●创建虚拟环境等了 30 秒;
●安 requirements.txt 花了 5 分钟;
●在CI/CD中因pip缓存失效而超时失败;
●想快速切换Python版本却要手动配置PATH……
那么,你一定会对 uv ——这个由Astral(Ruff 的作者)团队打造的超高速Python工具链——感到惊喜。
uv 不是一个单一工具,而是一套用Rust编写的、兼容现有生态的Python开发工具集合,包括:
●包安装器(替代 pip)
●虚拟环境管理器(替代 venv / virtualenv)
●Python 版本管理器(替代 pyenv)
●项目构建与发布工具(未来将替代build / twine)
●它的核心目标只有一个:极致速度 + 完全兼容。
本文将带你从零开始,全面掌握 uv 的下载、安装、核心命令使用,并深入剖析它为何被誉为“Python 工具链的未来”。
传统 Python 工具链(pip + venv + setuptools)存在以下问题:
uv 用 Rust 重写了底层逻辑,利用其内存安全、零成本抽象和并行能力,实现了数量级的速度提升。官方基准测试显示:
●创建虚拟环境:比 venv 快 10–100 倍
●安装依赖:比 pip 快 10–100 倍
●解析依赖:比 pip-tools 快 50 倍以上
更重要的是,uv 完全兼容 pip 的命令行接口和 requirements.txt 格式,几乎无需修改现有项目即可迁移。
●Windows(x64 / ARM64)
●macOS(Intel / Apple Silicon)
●Linux(glibc / musl)
# Linux / macOScurl -LsSf https://astral.sh/uv/install.sh | sh# Windows (PowerShell)irm https://astral.sh/uv/install.ps1 | iex
安装后,将~/.cargo/bin(或Windows的 %USERPROFILE%\.cargo\bin)加入PATH。
提示:即使你没有 Rust 环境,该脚本也会自动下载预编译的二进制文件。
# Homebrew (macOS/Linux)brew install uv# Scoop (Windows)scoop install uv# Arch Linux(AUR)yay -S uv-bin
方式三:手动下载
访问https://github.com/astral-sh/uv/releases下载对应平台的 .tar.gz 或 .zip 文件,解压后将 uv 可执行文件放入 PATH。
uv --version# 输出示例:uv 0.5.0 (abc123d)
uv 目前提供四大子命令:
●uv pip:高性能包安装
●uv venv:极速虚拟环境
●uv python:Python 版本管理
●uv tool:全局工具管理(类似 pipx)
下面逐一介绍。
3.1 uv venv:创建虚拟环境 (替代python -m venv)
# 创建名为 .venv 的虚拟环境(默认行为)uv venv# 指定路径uv venv myenv# 指定 Python 版本(需先安装该版本,见 3.3 节)uv venv --python 3.11
优势:不复制标准库,而是通过符号链接(symlink)实现,启动速度极快。
激活环境
与传统方式一致:
# Linux/macOSsource .venv/bin/activate# Windows (PowerShell).\.venv\Scripts\Activate.ps1
3.2 uv pip:安装 Python 包(替代 pip install)
uv pip 完全兼容 pip 的 CLI 参数和 requirements.txt。
基本安装
# 安装单个包uv pip install requests# 从 requirements.txt 安装uv pip install -r requirements.txt# 安装开发依赖uv pip install -e .
# 指定索引源(兼容 pip 选项)uv pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple torch# 仅下载不安装(用于离线部署)uv pip download -r requirements.txt --dest ./wheels# 冻结依赖(输出当前环境的精确版本)uv pip freeze > requirements.lock
速度实测
在一个包含 django, numpy, pandas, requests 的 requirements.txt 中:
pip install -r requirements.txt:42 秒
uv pip install -r requirements.txt:1.8 秒
优势:并行下载、智能缓存、避免重复解析依赖树。
3.3 uv python:管理 Python 版本(替代 pyenv)
这是 uv 最令人兴奋的功能之一——内置 Python 版本管理!
安装 Python 版本
# 列出可用版本uv python list --all# 安装指定版本(自动从 python.org 下载)uv python install 3.11uv python install 3.12.1# 安装最新 patch 版本uv python install 3.11 --latest
uv python list# 输出示例:# 3.11.9 /Users/you/.local/share/uv/python/3.11.9/bin/python3# 3.12.1 /Users/you/.local/share/uv/python/3.12.1/bin/python3
# 全局默认uv python pin 3.11# 项目级(在当前目录生成 .python-version)uv python pin 3.12.1 --project
优势:无需配置 shell 插件,开箱即用;自动处理 PATH;支持多平台预编译包。
3.4 uv tool:全局工具管理(替代 pipx)
用于安装命令行工具(如 black, ruff, poetry)到隔离环境中。
# 安装全局工具uv tool install blackuv tool install ruff# 运行工具(自动激活环境)black --versionruff check .# 列出已安装工具uv tool list# 卸载uv tool uninstall black
优势:比 pipx 更快,且与 uv 缓存共享,节省磁盘空间。
●Rust 实现:无 GIL 限制,充分利用多核。
●并行下载与安装:同时处理多个包。
●智能缓存:全局 wheel 缓存,避免重复编译。
●符号链接虚拟环境:创建时间从秒级降至毫秒级。
●完全支持 pip 的命令行参数。
● 读取requirements.txt, pyproject.toml, setup.py。
●生成的标准虚拟环境可被任何 IDE 识别。
pyenv → 管理 Python 版本venv → 创建虚拟环境pip → 安装包pipx → 安装全局工具
uv python install 3.11 # 版本管理uv venv --python 3.11 # 虚拟环境uv pip install -r reqs.txt # 包安装uv tool install ruff # 全局工具
●默认启用 --locked 模式(未来将强制),确保依赖解析结果一致。
●支持 --dry-run 预览安装计划。
●自动处理平台标签(如manylinux, musllinux)。
# 1. 安装所需 Python 版本uv python install 3.11# 2. 创建项目目录并进入mkdir my-flask-app && cd my-flask-app# 3. 设置项目级 Python 版本uv python pin 3.11 --project# 4. 创建虚拟环境uv venv# 5. 激活环境(Linux/macOS)source .venv/bin/activate# 6. 安装依赖echo "flask" > requirements.txtuv pip install -r requirements.txt# 7. 安装开发工具uv tool install black ruff# 8. 编写代码并格式化echo 'print("Hello uv!")' > app.pyblack app.py
短期内不会。uv 定位是 pip 的高性能替代品,而非破坏性革新。它尊重现有生态,目标是成为“更好的 pip”。
支持!所有 pip 的索引相关参数(--index-url, --extra-index-url, --trusted-host)均有效。
强烈推荐! 例如在 GitHub Actions 中:
- name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh- name: Setup Python run: uv python install 3.11- name: Create venv run: uv venv- name: Install deps run: uv pip install -r requirements.txt
完全支持!包括 PowerShell、CMD、WSL。虚拟环境路径、激活脚本均正确生成。
uv 仍在快速发展中(截至 2026 年初,版本约 0.5.x),未来计划包括:
●uv build:替代 python -m build
●uv publish:替代 twine upload
●完整的 PEP 517/518 支持
●与 Poetry、Hatch 等构建工具集成
Astral 团队的目标是:用一套工具统一 Python 的开发、构建、发布全流程。
uv 不仅仅是一个“更快的 pip”,它是对 Python 工具链的一次系统性重构。在 AI 和数据科学项目日益复杂的今天,开发效率的每一秒节省,都是对创造力的释放。
正如其名——uv(ultraviolet,紫外线),它看不见,却无处不在;它不改变生态,却让一切运行得更快、更稳、更简单。
现在就去试试吧:
curl -LsSf https://astral.sh/uv/install.sh | shuv venv && uv pip install numpy pandas
你可能会惊讶于:原来 Python 开发,可以这么快。
链接:https://blog.csdn.net/liaoqingjian/article/details/157693712?spm=1001.2014.3001.5502
本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除。