忘记 pip install,uv安装 Python 包的速度快100 倍⚡

 

我看到了这条推文。

这是谁?

Charlie Marsh是Astral 的创始人

该公司正在开发工具,使开发人员能够更快地发布优秀软件。

他们首先发布了Ruff,与现有的像Flake8这样的代码检查工具和像Black这样的格式化工具相比,速度提高了10 – 100倍。一种极快的代码检查工具和格式化工具

现在回到uv。

什么是uv?

uv是一个超快速的Python包安装器和解析器,用Rust编写,是pip、pip-tools和virtualenv的高速替代品。

它比pip和pip – tools快10 – 100倍:在缓存预热的情况下,uv的安装几乎是瞬间完成的。

还有一些其他亮点:

  • 节省磁盘空间:使用全局缓存来防止依赖项重复。
  • 随处可用:支持macOS、Linux和Windows。
  • 易于安装:你不需要安装Python或Rust。你可以使用curl、pip或brew来使用它。
  • 高级特性:支持依赖项版本覆盖和替代解析策略。
  • 更好的错误消息:具有冲突跟踪解析器的一流错误消息。
  • 高级pip功能:可编辑安装、git依赖项、本地依赖项、源代码分发。
  • 为什么它这么快?

  • Rust:Rust以其速度和安全性著称。
  • 解析器:一种智能的方法来确定哪些包版本可以一起工作。
  • 全局模块缓存:它记住已经见过的文件,所以不会重新下载或重新构建依赖项。
  • 写时复制和硬链接:这有助于最小化磁盘空间的使用。
  • uv的更大愿景是用它的速度和可靠性改变Python包管理。

    下一代包和项目管理工具?

    如果你在Python生态系统中待的时间足够长,你就会知道设置Python环境或创建一个包是多么痛苦。

    uv计划建立一个“Python的Cargo”,一个统一的Python包和项目管理器,它极其快速、可靠且易于使用。

    想象一下:一个单一的二进制文件,它引导你的Python安装,并为你提供使用Python进行高效生产所需的一切,不仅捆绑了pip、pip – tools和virtualenv,还包括pipx、tox、poetry、pyenv、ruff等等。

    Python工具使用可能是一种信心不足的体验:建立一个新的或现有的项目需要大量的工作,且命令会以令人困惑的方式失败。相比之下,在Rust生态系统中工作时,你相信工具会成功。Astral工具链旨在将Python从一种信心不足的体验转变为一种信心十足的体验。

    我很高兴看到uv显著改善Python开发体验!

    基准测试

    让我们看看他们基准测试中的一些数据。

    冷安装(快8 – 10倍)

    这相当于在一台新机器上运行uv pip sync。

    在没有缓存的情况下,uv比pip和pip – tools快8 – 10倍。

    热安装(快80 – 115倍)

    在缓存预热的情况下(例如,重新创建一个虚拟环境或更新一个依赖项),它快80 – 115倍。

    创建虚拟环境

    它比python – m venv快约80倍,比virtualenv快7倍。

    我在Hugging Face的transformers包上测试了uv。速度差异非常明显。

    如何使用?

    下面是开始使用 uv 时应该掌握的几个命令。

    安装

    Deepnote

    # On macOS and Linux.
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # On Windows.
    powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # With pip.
    pip install uv
    
    # With pipx.
    pipx install uv
    
    # With Homebrew.
    brew install uv
    
    # With Pacman.
    pacman -S uv

    创建 venv

    uv venv  # Create a virtual environment at .venv.

    激活 venv

    # On macOS and Linux.
    source .venv/bin/activate
    
    # On Windows.
    .venv\Scripts\activate

    安装软件包

    uv pip install flask                # Install Flask.
    uv pip install -r requirements.txt  # Install from a requirements.txt file.
    uv pip install -e .                 # Install the current project in editable mode.
    uv pip install "package @ ."        # Install the current project from disk
    uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.

    生成锁定的依赖项

    uv pip compile pyproject.toml -o requirements.txt   # Read a pyproject.toml file.
    uv pip compile requirements.in -o requirements.txt  # Read a requirements.in file.

    同步依赖项

    uv pip sync requirements.txt  # Install from a requirements.txt file.

    以上是本文的全部内容,感谢阅读!

    作者:Qingmu2024

    物联沃分享整理
    物联沃-IOTWORD物联网 » 忘记 pip install,uv安装 Python 包的速度快100 倍⚡

    发表回复