uv——Python最快的包安装器和解析器

uv——Python最快的包安装器和解析器

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

Astral发布了一个名为uv的新的Python包安装器,它是用Rust编写的,比pip快得多。Astral还将接管Rye的开发,uv和Rye将成为一个工具。要安装uv,可以使用Curl或pip。安装完成后,可以开始安装包。Astral希望通过uv创建一个“Python的Cargo”。

🔎

延伸解读

uv 与 pip 的性能对比

根据 Astral 的说明,uv 在不使用缓存时比 pip 和 pip-tools 快 8-10 倍,而在使用热缓存时(例如重建虚拟环境或更新依赖)可快 80-115 倍。这种速度提升主要得益于 uv 使用 Rust 编写,而 pip 基于 Python。对于需要频繁安装依赖的开发者,uv 能显著减少等待时间。

uv 与 Rye 的合并计划

Astral 已接管 Rye 的开发,并计划将 uv 和 Rye 合并为一个工具。Rye 是 Armin Ronacher 开发的实验性 Python 打包工具,两者在 Python 打包方面有共同愿景。这意味着未来用户可能通过一个统一的工具完成包安装和项目管理,减少工具链的碎片化。

使用 uv 的基本流程

安装 uv 后,需先创建并激活 Python 虚拟环境,然后才能安装包。uv 支持安装多个包、requirements.txt 文件和 pyproject.toml 文件。例如,运行 uv pip install numpy 会解析、下载并安装包,并显示各阶段耗时。此外,uv pip compile 可用于生成锁定的 requirements.txt 文件。

uv 的定位与前景

Astral 希望将 uv 打造成“Python 的 Cargo”,即一个集包安装、解析和项目管理于一体的工具。尽管 uv 发布仅约一年,仍处于早期阶段,但其基于 Rust 的实现已展现出惊人的速度和实用性。对于关注 Python 打包生态的开发者,这个项目值得持续关注。

❓

Q&A

uv是什么?它和pip有什么关系?

uv是Astral公司发布的一个Python包安装器和解析器,用Rust编写,旨在成为pip和pip-tools的直接替代品。它比pip和pip-tools快8-10倍(无缓存时),使用缓存时快80-115倍。

uv的安装速度比pip快多少?

根据Astral的说法,uv比pip和pip-tools快8-10倍(无缓存时),在使用热缓存时(例如重新创建虚拟环境或更新依赖)快80-115倍。

如何安装uv?

可以通过Curl安装:curl -LsSf https://astral.sh/uv/install.sh | sh,或者使用pip安装:pip install uv。

使用uv安装Python包需要什么前提条件?

需要先创建并激活一个Python虚拟环境。例如,使用uv venv test创建虚拟环境,然后激活它(如test\Scripts\activate),之后才能使用uv pip install安装包。

uv支持安装哪些形式的依赖?

uv支持安装多个以空格分隔的包、requirements.txt文件以及pyproject.toml文件。此外,还可以使用uv pip compile生成锁定的requirements.txt文件。

Astral对uv和Rye的未来计划是什么?

Astral已接管Rye的开发,并计划将uv和Rye合并为一个工具,因为它们对Python打包有共同的愿景。Astral希望用uv创建一个“Python的Cargo”。

🏷️

标签

➡️

继续阅读