
uv 是一个由 Rust 编写的极速 Python 包和项目管理工具,由 Ruff 的创建者 Astral 团队开发。它旨在用单一工具替代 pip、pip-tools、pipx、poetry、pyenv、twine 和 virtualenv 等工具。
pip 快 10-100 倍。pip 兼容的接口,零成本迁移即可获得性能提升。uv 提供了独立安装脚本,无需预装 Rust 或 Python。
macOS 和 Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
使用 pip 或 pipx 安装:
pip install uv
# 或者
pipx install uv
自我更新:
uv self update
uv 可以像 poetry 或 rye 一样管理项目依赖和虚拟环境。
初始化新项目:
uv init example
cd example
添加依赖包:
# 这会自动创建虚拟环境(如果不存在),并更新 pyproject.toml 和 uv.lock
uv add ruff
运行代码/检查:
uv run ruff check
锁定与同步依赖:
uv lock # 解析并生成/更新 uv.lock
uv sync # 同步当前环境与 lockfile 保持一致
uv 支持管理单文件脚本的依赖和环境(支持内联依赖元数据)。
创建脚本并添加依赖:
echo 'import requests; print(requests.get("https://astral.sh"))' > example.py
# 将依赖写入脚本的内联元数据中
uv add --script example.py requests
运行脚本:
# uv 会在隔离的临时虚拟环境中自动安装依赖并运行
uv run example.py
类似于 pipx,uv 可以执行和安装由 Python 包提供的命令行工具。
在临时环境中运行工具 (使用 uvx 或 uv tool run):
uvx pycowsay 'hello world!'
全局安装工具:
uv tool install ruff
ruff --version
uv 可以自动下载、安装并切换 Python 版本。
安装多个 Python 版本:
uv python install 3.12 3.13 3.14
使用特定版本创建虚拟环境:
uv venv --python 3.12.0
在当前目录固定 Python 版本:
uv python pin 3.11
# 这会生成一个 .python-version 文件
使用特定版本直接运行:
uv run --python pypy@3.8 -- python --version
如果你暂时不想改变现有的工作流,可以直接使用 uv pip 接口,它不仅完全兼容 pip 和 pip-tools,还能带来百倍的性能提升。
编译 requirements (替代 pip-compile):
uv pip compile requirements.in --universal --output-file requirements.txt
创建虚拟环境 (替代 virtualenv):
uv venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
安装依赖 (替代 pip install):
uv pip install -r requirements.txt
uv pip install flask