uv - 一个快如闪电的 Python 包管理工具

康少 Lv1

uv 是一个由 Ruff 的作者开发的实验性的 Python 包管理工具,旨在提供一个极速的 pipvenv 替代品。它被设计为 pippip-tools 的直接替代品,底层使用 Rust 编写,带来了显著的性能提升。本文将介绍 uv 的基本用法。

1. 安装 uv

你可以通过多种方式安装 uv

通过 winget (Windows):

1
winget install astral-sh.uv

通过 PowerShell:

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

通过 pip:

1
pip install uv

2. 初始化项目与虚拟环境

uv init 用于在一个新项目中首次创建虚拟环境和 pyproject.toml 文件。

1
uv init -p 3.13

这会使用 Python 3.13 版本来创建虚拟环境。

注意: 如果项目下已经存在 pyproject.toml 文件,再次运行 uv init 会提示错误。对于一个已经存在的项目(例如,你刚从 Git 克隆下来),你不需要运行 uv init。你可以直接运行 uv sync 来安装依赖并创建虚拟环境,或者直接用 uv run 来运行脚本,uv 会自动为你处理好环境的创建和同步并执行脚本。

3. 更换包索引源

为了加快包的下载速度,特别是在中国大陆地区,建议将包索引源更换为国内的镜像。在项目根目录的 pyproject.toml 文件中添加以下内容:

1
2
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple/"

如果 pyproject.toml 文件不存在,uv init 会为你创建一个。

4. 安装与管理依赖

uv 提供了丰富的命令来管理项目的依赖。

添加依赖

你可以使用 uv add 来添加一个新的依赖。例如,要安装 requests

1
uv add requests

uv 会将 requests 安装到虚拟环境中,并更新 pyproject.toml 文件。

requirements.txt 安装

如果你的项目已经有一个 requirements.txt 文件,可以使用 -r 标志来安装其中的所有依赖:

1
uv add -r requirements.txt

同步依赖

uv sync 命令非常强大,它可以根据 pyproject.toml 文件来同步虚拟环境中的包。它会确保虚拟环境与依赖文件完全一致(即安装缺失的包并卸载多余的包)。

1
uv sync

在虚拟环境中执行脚本

使用 uv run 可以在 uv 管理的虚拟环境中执行 Python 脚本或任何命令。一个非常方便的特性是,如果检测到配置文件(如 pyproject.toml),uv run 会自动安装所需的依赖,所以您可以直接运行命令而无需先手动执行 uv sync

1
uv run main.py

5. 导出依赖

当你需要将当前环境的依赖导出到 requirements.txt 文件时,可以使用 uv export

1
uv export > requirements.txt

6. 其他常用命令

uv 还提供了一些其他有用的命令:

  • uv remove <package>: 移除一个依赖包。
  • uv lock: 根据 pyproject.toml 生成一个 uv.lock 锁文件。
  • uv tree: 以树状结构显示已安装的依赖。

总结

uv 作为一个新兴的工具,凭借其出色的性能和与现有生态系统的良好兼容性,为 Python 开发者提供了一个非常有吸引力的选择。它简化了虚拟环境和包管理的流程,让开发者可以更专注于编码本身。如果你还在为 pip 的速度或 venv 的管理感到烦恼,不妨试试 uv

  • 标题: uv - 一个快如闪电的 Python 包管理工具
  • 作者: 康少
  • 创建于 : 2025-10-15 17:44:27
  • 更新于 : 2025-10-15 13:31:57
  • 链接: https://hexo-gamma-liard.vercel.app/2025/10/15/uv-一个快如闪电的Python包管理工具/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论