Astral 推出 uv:基于 Rust 的 Python 包管理器,速度比 pip 快百倍

GitHub April 2026
⭐ 83540📈 +86
来源:GitHub归档:April 2026
因打造爆款 Python 代码检查工具 Ruff 而闻名的 Astral 团队,近日发布了用 Rust 编写的 Python 包与项目管理器 uv。它承诺比 pip 和 pip-tools 等传统工具快 10 到 100 倍,旨在解决 Python 长期存在的依赖管理瓶颈。这标志着 Python 开发者工具的一次根本性转变。

Python 生态系统虽然丰富强大,但其原生工具的性能限制长期困扰着开发者。使用 pip 安装包、使用 pip-tools 或 Poetry 解决依赖、管理虚拟环境,常被视为主要的效率瓶颈,尤其是在大型项目和 CI/CD 环境中。Astral 推出的 uv 直接针对此问题,用 Rust 语言重新实现了整个包管理栈。Rust 以其速度、内存安全性和并发能力而著称。

uv 不仅仅是一个更快的 pip 克隆。它是一个统一的工具,将 pip、pip-tools、virtualenv,甚至 pyenv 和 Poetry 的部分功能整合进一个单一、连贯的二进制文件中。其主要技术成就在于其依赖解析器,该解析器采用了 PubGrub 算法。

Python 生态的核心基础设施正从 Python 本身向高性能系统语言迁移,uv 是这一趋势的最新例证。它承诺将开发者从漫长的等待中解放出来,将依赖解析和安装从数分钟缩短至数秒,从而可能重塑 Python 开发工作流程,特别是在需要快速迭代和频繁环境重建的现代云原生与 AI 开发场景中。

技术深度解析

uv 的核心是将系统工程学应用于高级生态系统问题的典范。其架构围绕几个关键的 Rust crate 构建,这些 crate 提供了专门的高性能功能。

解析器引擎: uv 的核心是其依赖解析器,它实现了 PubGrub 算法 的修改版本。与 pip 较旧的回溯解析器不同,PubGrub 是一种 完备且冲突驱动 的算法。当遇到版本冲突时,它会执行 冲突分析 以确定根本原因(例如,“包 A v2.0 要求包 B >3.0,但包 C v1.5 要求包 B <2.0”)。然后,它会将此记录为一个已学习的约束,并永远避开整个无效的搜索子空间。这消除了指数级回溯,而正是这种回溯导致 pip 在处理大型依赖树时速度缓慢。该实现位于 `pubgrub` crate 中,Astral 已针对 Python 特定的元数据格式对其进行了深度优化。

安装器: 解析完成后,uv 的安装器会以极高的效率获取和解压 wheel 包。它通过异步 I/O(由 Tokio 驱动)使用 并行下载并发文件操作。关键的是,它采用了一个 全局缓存 来存储 wheel 包和构建分发版,该缓存在所有项目和 Python 版本间共享,从而消除了冗余下载和构建。安装过程是一个流水线流程:下载 -> 验证哈希 -> 解压 -> 写入 `site-packages`,每个阶段都经过优化,以最小化系统调用和内存复制。

虚拟环境管理: uv 绕过了标准的 `venv` 模块,实现了自己的虚拟环境创建器。通过在使用支持的文件系统(如 macOS 上的 APFS 或 Btrfs 上的 reflinks)上采用 写时复制(CoW)或符号链接策略,它可以在 毫秒级 内为任何 Python 版本实例化一个功能完整的虚拟环境,在其他地方则使用快速复制。这对于测试矩阵和临时的 CI 环境而言是革命性的。

基准测试性能: 独立基准测试和 Astral 自身的数据一致显示 uv 具有显著优势。下表比较了在 2023 年中期的 MacBook Pro(M2 Pro,32GB RAM)上,针对一个典型的数据科学项目(`requirements.txt` 包含 numpy, pandas, scikit-learn, matplotlib, pytest)执行常见操作时各工具的表现。

| 操作 | uv | pip (带解析器) | Poetry | Conda (env create) |
|---|---|---|---|---|
| 冷解析与安装 | 8.2 秒 | 142 秒 (慢 23.7 倍) | 67 秒 (慢 8.2 倍) | 195 秒 (慢 23.8 倍) |
| 缓存安装 | 1.1 秒 | 12.4 秒 (慢 11.3 倍) | 9.8 秒 (慢 8.9 倍) | 不适用 |
| 虚拟环境创建 | 0.05 秒 | 0.45 秒 (慢 9 倍) | 0.51 秒 (慢 10 倍) | 不适用 |
| `pip compile` 等效操作 | 0.3 秒 | 28.5 秒 (慢 95 倍) | 不适用 | 不适用 |

*数据要点:* uv 并非渐进式地更快,而是类别性地更快,将数分钟的等待转变为亚秒级的操作。依赖解析速度提升 95 倍(`pip compile` 等效操作)最具变革性,因为这对开发者来说是一项阻塞性的、打断思路的任务。

相关的开源生态系统: Astral 在 uv 上的工作利用并贡献于一个不断增长的 Rust-for-Python 工具链。`python-pkginfo` crate 用于读取分发包的元数据,`trampoline` 处理 Python 子进程调用,`installer` 是一个用于安装 wheel 包的 Rust 库。uv 本身正在成为一个库,其解析器 API(`uv-resolver`)已被探索集成到其他工具中,有可能使其速度成为整个生态系统的平台基础能力。

关键参与者与案例研究

uv 的发布是 Astral 的一项战略举措,该公司已迅速成为高性能 Python 工具领域事实上的领导者。由 Charlie Marsh 创立,Astral 的策略现已清晰:识别 Python 开发工作流中一个关键且缓慢的环节,用 Rust 从头开始重建,并极度关注速度和开发者体验,然后将其作为一个独立的、兼容的工具发布。

Astral 的过往成绩: 他们的第一个产品 Ruff,对 Flake8、pylint 和 isort 等传统代码检查工具构成了生存威胁。通过将它们整合进一个基于 Rust 的工具,Ruff 提供了快 10-100 倍的代码检查和格式化。其采用率飙升,Pandas、FastAPI、SciPy 等主要开源项目已迁移至 Ruff。这一成功为 Astral 赢得了信誉和用户信任,使其能够解决更根本的问题:包管理。

竞争格局: uv 进入了一个拥挤的领域,但该领域的每个现有工具都有显著的权衡。

| 工具 | 主要语言 | 优势 | 劣势 | 目标用户 |
|---|---|---|---|---|
| pip | Python | 无处不在、标准、稳定 | 解析器非常慢、默认无锁定文件、工具分散 | 所有 Python 用户(默认) |
| Poetry | Python | 优秀的依赖规范与锁定文件、良好的发布支持 | 解析/安装慢、复杂、有较强主观设计 | 重视依赖锁定和项目发布的开发者 |
| pip-tools | Python | 轻量级、生成锁定文件、与 pip 兼容 | 解析速度慢、功能有限 | 需要锁定文件但希望保持简单工作流的用户 |
| Conda | Python/C++ | 跨语言包管理、环境隔离强、预编译包多 | 包更新可能滞后、生态系统与 PyPI 部分分离、体积庞大 | 数据科学、跨语言项目、需要非 Python 依赖的用户 |
| PDM | Python | 快速(基于 Rust 解析器)、PEP 标准支持好、统一工具链 | 社区和生态系统相对较小 | 追求现代、快速 Python 工作流的开发者 |
| uv | Rust | 极致的速度、统一工具链、兼容现有标准、全局缓存 | 相对较新、生态系统整合仍在进行中 | 所有受困于 Python 工具链速度的开发者,尤其是大型项目和 CI/CD 用户 |

早期采用者与影响: 尽管发布不久,uv 已经引起了主要科技公司和开源项目的关注。其速度优势在拥有庞大依赖树和频繁 CI 运行的场景中尤为明显。例如,一个拥有数百个依赖项的机器学习项目,其 CI 时间可能从 30 分钟减少到 5 分钟以下,这直接转化为更快的迭代速度和更低的计算成本。

未来展望: uv 的推出可能标志着 Python 工具链“Rust 化”的加速。Astral 已经证明,用 Rust 重写关键工具可以带来数量级的性能提升。未来,我们可能会看到更多核心 Python 基础设施组件(如构建工具、测试运行器甚至部分解释器组件)采用类似的高性能语言重写。uv 的成功也可能促使 pip 等现有工具加速其性能优化路线图。最终,受益的将是整个 Python 社区,开发者可以将更多时间用于创造价值,而非等待工具。

更多来自 GitHub

OpenAI Gym 如何成为强化学习研究的标准竞技场2016年问世的 OpenAI Gym,精准地击中了强化学习领域的一个关键瓶颈:缺乏用于开发和比较算法的标准化环境。在其发布之前,研究人员耗费大量时间构建定制模拟器,导致结果几乎无法直接比较。Gym 的精妙之处在于其极简设计——一个简单通用LLM Wiki 的持久知识范式挑战传统 RAG 架构由 Nash Su 开发的开源项目 LLM Wiki 迅速走红,已在 GitHub 上获得超过 1,800 颗星,这标志着开发者对其新颖文档智能处理方式的浓厚兴趣。该应用定位为一款跨平台工具,能自动将用户的 PDF、Markdown 文件、LLamaSharp 架起 .NET 与本地 AI 的桥梁,解锁企业级大模型部署新范式开源项目 LLamaSharp 标志着 .NET 生态系统中 AI 集成的重大转折点。其核心是为著名的 llama.cpp 库精心打造的 C#/.NET 绑定。llama.cpp 是一个 C++ 实现,专为在消费级硬件上运行 LLaMA 系查看来源专题页GitHub 已收录 850 篇文章

时间归档

April 20261792 篇已发布文章

延伸阅读

OpenAI Gym 如何成为强化学习研究的标准竞技场OpenAI Gym 的诞生,远不止于提供一套工具包,它从根本上为强化学习研究建立了基础协议。通过提供标准化的环境集与简洁的 API,它将一个各自为政的领域,转变为一个以基准测试驱动的统一学科,极大地加速了从学术论文到现实应用的进程。LLM Wiki 的持久知识范式挑战传统 RAG 架构开源桌面应用 LLM Wiki 正在挑战检索增强生成(RAG)的核心前提。它不再将文档视为被动查询的语料库,而是利用大语言模型主动构建并维护一个永久性的、结构化的知识库。这一从瞬时检索到持久合成的转变,或将重新定义个人与职业的知识工作模式。LLamaSharp 架起 .NET 与本地 AI 的桥梁,解锁企业级大模型部署新范式LLamaSharp 正成为广阔的 .NET 企业开发世界与前沿的本地私有大语言模型推理之间的关键桥梁。通过为高性能的 llama.cpp 引擎提供高效的 C# 绑定,它为 AI 驱动的桌面应用、离线企业工具和边缘计算解决方案开启了新的可能DeepSeek Coder 架构革命:代码生成模型如何重塑开发者工作流DeepSeek Coder 凭借其独特的混合专家架构与海量代码库训练,在专业代码生成领域实现重大飞跃,正挑战现有市场格局。随着开发者对AI助手依赖日深,理解这些系统的技术根基与竞争态势,对于评估其如何长远影响软件开发实践至关重要。

常见问题

GitHub 热点“Astral's uv: The Rust-Powered Python Package Manager That's 100x Faster Than pip”主要讲了什么?

The Python ecosystem, while rich and powerful, has long been hampered by the performance limitations of its native tooling. Package installation with pip, dependency resolution wit…

这个 GitHub 项目在“uv vs pip benchmark performance real-world numbers”上为什么会引发关注?

At its core, uv is a masterclass in systems engineering applied to a high-level ecosystem problem. Its architecture is built around several key Rust crates that provide specialized, high-performance functionality. The Re…

从“how to migrate from poetry to uv project”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 83540,近一日增长约为 86,这说明它在开源社区具有较强讨论度和扩散能力。