Python 新包管理工具:UV
Python 生态中有许多包管理工具,如 pip
、poetry
和 conda
,而 uv
作为一个新兴工具,正迅速受到关注。uv
由 Astral 开发,基于 Rust 编写,宣称是 Python 包管理的未来。它不仅速度极快(据称比传统工具快 10-100 倍),还集成了项目管理、虚拟环境管理和 Python 版本管理的功能,旨在成为一个全能解决方案。
截至 2025 年 3 月 29 日,uv
的官方文档和社区反馈显示,其普及度正在提升,尤其在需要高效依赖管理的场景中表现出色。然而,作为一个较新的工具,其长期稳定性仍需更多用户验证。
安装步骤
uv
提供了多种安装方法,适用于不同操作系统。以下是最新且推荐的安装步骤:
使用安装脚本:
- Linux 系统:
1
curl -LsSf https://astral.sh/uv/install.sh | sh
- macOS 系统:
1
brew install uv
- Windows(PowerShell):注意:Windows 用户可能需调整 PowerShell 执行策略,确保脚本顺利运行。
1
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
- 这些命令会自动下载并安装
uv
,无需额外配置。
- Linux 系统:
使用 pip 安装:
- 运行:
1
pip install uv
- 或使用
pipx
:1
pipx install uv
- 更多安装选项可参考 uv 官方安装文档。
- 运行:
验证安装:
安装完成后,运行以下命令检查版本:
1 | uv --version |
输出类似 uv 0.1.0
,表示安装成功。
项目初始化与依赖管理
uv
的核心功能之一是简化项目初始化和依赖管理。以下是具体用法:
初始化项目:
- 在项目目录中运行:
1
uv project init
- 此命令会生成
uv.toml
文件,用于存储项目配置。
- 在项目目录中运行:
添加依赖:
- 添加包(如
requests
):1
uv add requests
uv
会快速解析并安装依赖到项目虚拟环境中。
- 添加包(如
更新和移除依赖:
- 更新所有依赖:
1
uv update
- 更新特定包:
1
uv update <package_name>
- 移除包:
1
uv remove <package_name>
- 更新所有依赖:
锁文件(lockfile):
- 运行
uv lock
生成锁文件,确保依赖版本一致,适合团队协作。
- 运行
虚拟环境管理
uv
提供便捷的虚拟环境管理功能:
创建和激活:
uv
自动为项目创建虚拟环境,激活方式:1
uv activate
- 激活后,命令行提示符会显示虚拟环境名称。
退出虚拟环境:
- 输入:
1
uv deactivate
- 输入:
列出虚拟环境:
- 查看所有管理的虚拟环境:
1
uv env list
- 查看所有管理的虚拟环境:
多版本支持:
- 通过
uv python install <version>
安装特定 Python 版本(如3.10
),并自动检测系统已有 Python 安装。
- 通过
运行脚本和工具
uv
支持运行脚本和安装工具,类似 pipx
:
运行脚本:
- 执行 Python 脚本:示例:
1
uv run <script_path>
uv run myscript.py
。
- 执行 Python 脚本:
安装工具:
- 安装工具包(如
black
):1
uv tool install black
- 运行工具:或使用别名
1
uv tool run black myfile.py
uvx
:1
uvx black myfile.py
- 安装工具包(如
临时虚拟环境:
uv tool run
会创建临时环境运行工具,用后即删,保持项目环境干净。
Python 版本管理
uv
内置 Python 版本管理,适合多版本开发:
安装版本:
- 安装指定版本:
1
uv python install 3.10
- 可同时安装多个版本:
1
uv python install 3.9 3.10 3.11
- 安装指定版本:
列出和使用:
- 查看已安装版本:
1
uv python list
- 在
uv.toml
中固定版本:1
2[tool.uv]
python = "3.10" - 或运行时指定:
1
uv --python 3.10 run myscript.py
- 查看已安装版本:
高级功能
uv
提供了一些高级特性:
锁文件和工作区:
uv lock
生成锁文件。- 支持工作区管理,在父目录创建
uv.workspace.toml
。
兼容 pip:
- 支持
uv pip install <package_name>
,性能远超传统pip
。
- 支持
疑难解答与技巧
以下是常见问题解决方法:
- 更新 uv:
- 运行
uv self update
获取最新版本。
- 运行
- 清理环境:
- 用
uv clean
重置项目环境。
- 用
- 获取帮助:
- 参考 uv 官方文档 或社区讨论。
结语
uv
是一个高效、多功能的 Python 包管理工具,适合追求速度和集成体验的开发者。虽然它可能改变传统工作流,但作为新工具,建议先在非关键项目中试用。希望本教程能帮助您快速掌握 uv
,提升开发效率!