uv
是由 Astral 公司(Ruff 工具的开发者)推出的新一代 "Python 包和项目管理工具",基于 Rust 编写,旨在替代传统工具链(如 pip
、poetry
、virtualenv
等),提供更快的速度和更统一的工作流。以下是其核心特性和使用指南:
1. 核心优势
极速性能:依赖解析和安装速度比
pip
快 "10–100 倍",尤其在冷启动和缓存场景下表现突出。一体化工具:整合了包管理、虚拟环境、Python 版本管理、脚本运行等功能,无需切换多个工具。
标准化兼容:支持
pyproject.toml
和跨平台锁文件uv.lock
,确保依赖一致性。自动虚拟环境:无需手动激活,
uv run
自动处理环境隔离。开发与生产分离:支持依赖分组(如
dev
、production
),优化部署效率。
2. 安装方法
一键安装脚本(推荐):
# macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
其他方式:
pip install uv
、brew install uv
或通过pipx
安装。
3. 基础使用
初始化项目
uv init myproject # 生成 pyproject.toml、uv.lock 等文件 cd myproject
管理依赖
添加包:
uv add pandas # 生产依赖 uv add --group dev pytest # 开发依赖
同步依赖:
uv sync # 安装所有依赖并更新锁文件
运行脚本
uv run main.py # 自动处理虚拟环境和依赖
Python 版本管理
uv python install 3.12 # 安装指定版本
uv python pin 3.12 # 为项目固定版本
4. 高级功能
内联脚本依赖:单文件脚本可通过注释声明依赖,
uv run
自动安装。工具管理:类似
pipx
,支持安装和运行 CLI 工具(如uvx ruff
)。工作区支持:类似 Cargo,管理多项目工作空间。
5. 常见问题解决
Python 版本冲突:修改
pyproject.toml
中的requires-python
或使用uv python install
安装所需版本[12]。构建错误:若包不支持当前 Python 版本,尝试降级(如
uv sync -p 3.12
)。
6. 适用场景
新项目:推荐直接使用
uv
初始化,享受一体化管理。现有项目迁移:逐步替换
pip
命令为uv pip
,兼容现有流程。
总结
uv
通过性能优势和简化工具链,正在成为 Python 生态的新标准。对于追求效率和现代工作流的开发者,它是值得尝试的替代方案。更多细节可参考官方文档。