uv 是由 Astral 开发的高性能 Python 包与项目管理工具,使用 Rust 编写,提供 Python 版本管理、虚拟环境管理、依赖解析、包安装以及项目管理等能力。
关于 uv 到底是什么含义,没有明确的文档解释,可以查看 issue #8149 了解更多,大概是:
alphavector(2024年10月13日):我们考虑过很多名字。如今想找一个不重名的名字真的很难,所以每个名字都是在各种取舍之间权衡的结果。uv 这个名字是 PyPI 上直接让给我们的,带有 Astral(星辰)主题的寓意(即 ultraviolet 紫外线,或 universal 通用),而且简短、好输入。
charliermarsh(2024年10月14日,成员):是的,对我来说它是 “ultraviolet”(紫外线)的缩写,不过我们也喜欢它可以有几种不同的解读。我们想要的是:(1)在 PyPI 等平台上可用,(2)和其他软件项目的冲突尽可能少,(3)容易输入!
关于 Astral
Astral 由 Charlie Marsh 创立,原为独立的开发工具公司,专注于提升 Python 开发效率。
使用 Rust 开发了三个开源项目,强调性能、易用性以及工具链的统一。
| 项目 | 主要用途 | 对应传统工具 |
|---|---|---|
| uv | Python 包、依赖、虚拟环境、项目管理 | pip、venv、Poetry |
| Ruff | 代码检查与格式化 | Flake8、Black、isort |
| ty | Python 静态类型检查 | mypy、Pyright |
astral-sh 是 Astral 在 GitHub 上的 Organization 账号。
2022 年 Charlie Marsh 创建 Ruff,随后成立 Astral,发展高性能 Python 工具业务。
2023–2025 Astral 独立发展,推出 uv、ty 等工具,获得风险投资并建立专职研发团队。
2026-03-19 OpenAI 正式宣布收购 Astral 双方公布 Astral 团队将加入 OpenAI 的 Codex 团队,继续支持开源项目。
特性
- 一个工具即可取代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等众多工具。
- 比 pip 快 10 到 100 倍。
- 提供全面的项目管理功能,并带有通用锁文件。
- 可以运行脚本,并支持内联依赖元数据。
- 可以安装和管理 Python 版本。
- 可以运行和安装以 Python 包形式发布的工具。
- 内置兼容 pip 的接口,用熟悉的命令行就能获得性能提升。
- 支持 Cargo 风格的工作区(workspaces),适合构建可扩展的大型项目。
- 节省磁盘空间,通过全局缓存对依赖去重。
- 无需预先安装 Rust 或 Python,可通过 curl 或 pip 安装。
- 支持 macOS、Linux 和 Windows。
安装及更新
- macOS、Linux
curl -LsSf https://astral.sh/uv/install.sh | sh- Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"- 更新,使用独立安装的使用如下命令:
uv self update- 确认版本
uv --version
# 输出类似如下
uv 0.13.1 (62faed335 2026-10-13 aarch64-apple-darwin)基本用法
# 1. 创建项目
uv init --no-package my-project # 简单应用,生成 main.py
cd my-project
# uv init # 也可以在已有目录初始化
# 2. Python 版本管理
uv python install 3.12
uv python pin 3.12 # 写入 .python-version
# 3. 依赖管理
uv add requests fastapi # 添加运行依赖
uv add --dev pytest ruff # 添加开发依赖
uv remove requests # 移除依赖
uv tree # 查看依赖树
# 4. 环境同步
uv sync # 根据项目配置同步 .venv
uv lock # 更新 uv.lock,不同步环境
uv sync --frozen # 按现有锁文件同步
# 5. 运行与测试
uv run python main.py
uv run pytest
uv run ruff check .
uv run ruff format .