uv 是一个用 Rust 编写的极快 Python 包安装器与解析器,面向现代 Python 项目管理和依赖工作流。它可用于搭建新 Python 项目、管理依赖、创建和管理虚拟环境、安装或切换 Python 解释器版本、高效解决依赖冲突,以及从 pip、pip-tools 或 poetry 迁移。资料称其安装速度比 pip 快 10-100 倍。
主要能力
- 包安装与管理:支持添加、移除和升级依赖,支持版本约束(如 "django>=4.0,<5.0")、多项同时添加、开发依赖(--dev)、可选依赖(--optional)、Git 依赖(含指定标签)、本地路径依赖及可编辑安装。
- 虚拟环境管理:可创建指定路径或指定 Python 版本的虚拟环境,支持手动激活,也可用 uv run 跳过激活直接运行命令。
- Python 版本管理:可安装多个 Python 版本、列出已安装或所有可用版本、为项目固定解释器版本。
- 锁定与可复现安装:提供 uv lock 创建或更新 lockfile,支持整体升级、指定包升级和检查锁定状态;建议使用 --frozen 在 CI 中保持一致构建。
- 项目配置:使用 pyproject.toml 定义项目元数据、依赖、可选依赖和构建系统,并可通过 [tool.uv] 与 [tool.uv.sources] 配置开发依赖和依赖来源。
- 兼容 pip 工作流:提供 uv pip install、uv pip uninstall、uv pip freeze、uv pip list 等 pip 兼容命令,可从 requirements.txt 安装或导出依赖。
- 与现有项目协作:可从 requirements.txt 迁移(uv add -r requirements.txt),在已有 pyproject.toml 的项目中直接 uv sync,也可导出 requirements.txt 及带哈希的版本。
- 缓存与性能:提供 uv cache clean、uv cache dir 等缓存管理命令,资料提到可利用全局缓存提升速度。
使用方式
安装方式包括:macOS/Linux 使用 curl -LsSf https://astral.sh/uv/install.sh | sh;Windows PowerShell 使用 powershell -c "irm https://astral.sh/uv/install.ps1 | iex";也可使用 pip install uv 或 brew install uv,并用 uv --version 验证。
快速开始:uv init my-project 创建项目,uv add requests pandas 安装包(必要时自动创建虚拟环境),uv add --dev pytest black ruff 安装开发依赖,uv pip install -r requirements.txt 从依赖文件安装,uv sync 根据 pyproject.toml 同步。
常用命令涵盖项目管理(uv init、uv add、uv remove、uv sync、uv lock)、虚拟环境(uv venv、uv run)、Python 管理(uv python install/list/pin)、pip 兼容安装与查询,以及缓存与版本查看等工具命令。
适用场景
资料列出的调用场景包括:搭建新 Python 项目或管理依赖、创建和管理虚拟环境、安装或切换 Python 解释器版本、高效解决依赖冲突、从 pip/pip-tools/poetry 迁移到 uv、用更快的安装加速 CI/CD 流水线、使用 lockfile 实现可复现构建,以及用工作区管理 monorepo Python 项目。
最佳实践(资料建议)
始终使用 lockfile 保证可复现;用 .python-version 固定 Python 版本;区分开发依赖与生产依赖;使用 uv run 代替激活虚拟环境;将 uv.lock 提交到版本控制;在 CI 中使用 --frozen;利用全局缓存提升速度;在 monorepo 中使用工作区;为兼容性导出 requirements.txt;保持 uv 更新以获得最新功能。
限制与补充说明
资料未提供关于收费、价格、具体性能基准数值细节、平台支持的完整列表或功能限制的明确说明,这些内容暂未提供。更多信息可参考官方文档 https://docs.astral.sh/uv/、GitHub 仓库 https://github.com/astral-sh/uv、Astral 博客 https://astral.sh/blog 以及迁移指南 https://docs.astral.sh/uv/guides/。