uv - 一个快如闪电的 Python 包管理工具
uv 是一个由 Ruff 的作者开发的实验性的 Python 包管理工具,旨在提供一个极速的 pip 和 venv 替代品。它被设计为 pip 和 pip-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 | [tool.uv] |
如果 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 进行许可。