uv入门:下一代 Python 包管理器

360影视 动漫周边 2025-04-30 10:29 8

摘要:Python 的发展与包管理的进步密切相关,从手动安装到像 pip 和 poetry 这样的工具。然而,随着项目复杂度的增加,传统工具在速度和效率方面常常力不从心。

Python 的发展与包管理的进步密切相关,从手动安装到像 pip 和 poetry 这样的工具。然而,随着项目复杂度的增加,传统工具在速度和效率方面常常力不从心。

uv 是一款前沿的 Python 包和项目管理器,用 Rust 编写而成,旨在改变这一现状。它集成了 pip、poetry 和 virtualenv 等工具的功能,能够高效地处理依赖管理、脚本执行和项目构建等任务,同时提供卓越的性能。它与 pip 命令无缝兼容,无需额外的学习曲线。

在本教程中,我们将探索如何安装 uv 并充分利用其功能。从设置项目和管理依赖关系,到运行脚本并利用其增强的 pip 接口。

pip 是一种广泛使用的 Python 包管理系统,用于安装和管理软件包。然而,尽管它很受欢迎,但常常被批评为 Python 中最慢的包管理工具之一。关于“pip install 太慢”的抱怨在开发者论坛和讨论中屡见不鲜。

pip 的另一个重大缺陷是对依赖关系配置文件的敏感性。如果这些文件编写或维护不当,可能会导致依赖关系“异味”,从而增加项目的复杂性并降低可维护性。

此外,pip 在恢复运行时环境时无法始终准确匹配 Python 代码。这种不匹配可能导致依赖关系推断的成功率较低,难以可靠地重建项目环境。

uv 是一款由 ruff 的开发者创建的现代高性能 Python 包管理器,用 Rust 编写而成。它被设计为 pip 和 pip-tools 的直接替代品,提供卓越的速度和与现有工具的兼容性。

uv 的关键特性包括支持可编辑安装、Git 和 URL 依赖关系、约束文件、自定义索引等。它的标准兼容虚拟环境可以与其他工具无缝协作,避免了锁定或定制化问题。uv 是跨平台的,支持 Linux、Windows 和 macOS,并且已经针对 PyPI 索引进行了广泛测试。

uv 专注于简单性、速度和可靠性,解决了开发者常见的痛点,如安装速度慢、版本冲突和复杂的依赖关系管理,为现代 Python 开发提供了一个直观的解决方案。

安装 uv 非常快速且简单。您可以选择独立安装程序,也可以直接从 PyPI 安装。

curl -LsSf https://astral.sh/uv/install.sh | sh

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

pip install uv

pipx install uv

brew install uv

pacman -S uv

在使用 uv 之前,我们需要将 uv 路径添加到环境变量中。

对于 Linux 和 macOS,通过以下命令修改 PATH 环境变量:

export PATH="$HOME/.local/bin:$PATH"

对于 Windows,要将目录添加到用户和系统的 PATH 环境变量中,请在搜索栏中搜索“环境变量”。在用户变量 / 系统变量下,选择 Path 变量,点击编辑,然后点击新建并添加所需路径。

%USERPROFILE%\.local\bin

安装完成后,在终端运行 uv 命令以验证是否安装正确。

比如, uv -V 查看版本。

每个 Python 安装版本都有一个在使用 Python 时激活的环境。可以将包安装到环境中,以便在 Python 脚本中使用其模块。通常,不建议修改 Python 安装的环境,尤其是操作系统自带的 Python 安装,因为它们通常会自行管理这些包。虚拟环境是一种轻量级的方法,可以将包与 Python 安装的环境隔离。与 pip 不同,uv 默认要求使用虚拟环境。

使用 uv 创建虚拟环境非常简单。使用以下命令以及您希望的环境名称来创建。

uv venv

运行以下命令激活虚拟环境。

# On macOS and Linux.

source .venv/bin/activate

# On Windows.

.venv\Scripts\activate

可以指定特定的名称或路径,例如,在 my-name 创建虚拟环境:

uv venv my-name

输出:Using CPython 3.13.3

Creating virtual environment at: my-name

Activate with: source my-name/bin/activate

还可以指定 Python 版本,例如,创建一个使用 Python 3.11 的虚拟环境:

uv venv --python 3.11

请注意,这需要系统上已安装了所请求的 Python 版本。如果未安装,uv 将会为你下载 Python。

五、安装包

在虚拟环境中安装包的过程非常熟悉。以下是各种安装方法:

uv pip install flask

uv pip install -r requirements.txt

uv pip install -e .

uv pip install "package @"

uv pip install "flask[dotenv]"

让我们通过 uv 探索一些与项目相关的命令。首先,初始化一个名为“sample-project”的 Python 项目。

uv init sample-project

进入 sample-project 目录。uv 会初始化项目,并生成一些基本文件,如 main.py、pyproject.toml、README.md 等。

项目主要包含两个关键文件:

pyproject.toml - 项目配置文件,定义了项目元数据和依赖要求main.py - 包含主程序入口点

使用 run 命令运行示例 Python 文件。此过程会首先创建虚拟环境文件夹,然后运行 Python 文件。

uv run main.py

输出:

Using CPython 3.13.3

Creating virtual environment at: .venv

Hello from sample-project!

使用 uv 安装 Python 是可选的,因为 uv 与现有的 Python 安装完全兼容。然而,如果希望通过 uv 安装 Python,可以通过以下简单命令完成:

uv python install 3.13.3

这种方法通常比传统方法更方便、更可靠,因为它无需管理仓库或下载安装程序。只需执行命令,即可完成设置并立即使用。

七、工具

可以通过 uv 命令安装和使用 CLI 工具。例如,可以安装 huggingface_hub 工具,以便从 Hugging Face 仓库拉取和推送文件。

使用以下命令通过 uv 安装 huggingface_hub:

uv tool install huggingface_hub

显示所有已安装的工具:

uv tool list

以下是一些使用 uv 进行常见操作的速查表:

来源:软件架构

相关推荐