UV

发布于 2026-10-16

UV 概览

uv 的基本信息及安装方法

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 开发了三个开源项目,强调性能、易用性以及工具链的统一。

项目主要用途对应传统工具
uvPython 包、依赖、虚拟环境、项目管理pip、venv、Poetry
Ruff代码检查与格式化Flake8、Black、isort
tyPython 静态类型检查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
Bash
curl -LsSf https://astral.sh/uv/install.sh | sh
  • Windows
PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • 更新,使用独立安装的使用如下命令:
Bash
uv self update
  • 确认版本
Bash
uv --version
# 输出类似如下
uv 0.13.1 (62faed335 2026-10-13 aarch64-apple-darwin)

基本用法

Bash
# 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 .
 

链接