UV介绍
Python生态中存在近20种包管理工具,导致工程化方面生态割裂。开发者在使用Python时会遇到包安装、环境一致性、锁文件、包缓存、多版本管理、全局工具管理、项目依赖管理以及科学计算场景适配等众多工程问题。这些问题要么有多种工具解决造成学习门槛,要么缺乏有效解决方案。
uv应运而生,它集多种工具功能于一体,提供统一管理入口,融合了Rust语言先进的包管理经验,使用体验流畅高效。由于采用Rust实现,执行效率高,能显著减少开发者在Python工程化方面的折腾时间,使开发流程更加顺畅。
详细的uv使用请浏览:Python 包管理工具 uv 使用教程和·官方文档
UV安装
uv安装方式一般有两种:1.通过独立安装程序,2.通过pip.他们的特点如下
1. 独立安装程序(推荐方式)
特点:
- 无需依赖 Python 环境:独立安装程序是预编译的二进制文件(因 uv 基于 Rust 开发),安装时不需要现有 Python 环境支持,甚至可以在没有安装 Python 的系统中直接使用。
- 安装位置独立 :通常会将 uv 安装到系统全局路径(如
/usr/local/bin
或~/.cargo/bin
等),作为独立工具存在,不与特定 Python 环境绑定。 - 更新便捷 :支持通过
uv self-update
命令直接更新自身版本,无需依赖其他工具,更新流程更简单。 - 性能与完整性:作为官方推荐的安装方式,通常包含完整功能,且启动速度、执行效率可能略优于 pip 安装方式(减少 Python 解释器启动开销)。
bash
# macOS和Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows 使用 irm 下载脚本并通过 iex 执行
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. pip 安装
特点:
- 依赖现有 Python 环境:本质是通过 pip 将 uv 作为 Python 包安装,因此必须依赖已存在的 Python 环境(需先安装 Python 和 pip)。
- 安装位置与 Python 环境绑定 :会被安装到当前 Python 环境的
site-packages
目录下,其可执行文件路径通常与当前 Python 环境关联(如venv/bin/uv
或~/.local/bin/uv
)。 - 更新依赖 pip :更新 uv 需使用
pip install --upgrade uv
,受限于 pip 的更新逻辑,且可能受当前 Python 环境状态影响。 - 兼容性导向:主要为了适配习惯使用 pip 的 Python 开发者,降低入门门槛,但功能上与独立安装程序一致(仅安装和更新方式不同)。
bash
# 全局安装(需管理员权限)
pip install uv
# 虚拟环境安装(推荐)笔者使用的conda构建,也可以使用其他的构建虚拟环境的工具,如venv
conda create -n myenv
conda activate myenv
pip install uv
# venv
python -m venv myenv
source myenv/bin/activate
pip install uv
3. 如何选择安装方式
- 选择独立安装程序:
- 需要极快的性能或无需 Python 环境(例如 CI/CD 或服务器部署)。
- 希望直接使用原生二进制文件,避免 Python 依赖的复杂性。
- 你使用的是 Linux/macOS,且能接受手动配置环境变量。
- 可以访问github,或者有可用的github镜像(不要问为什么有这一条)
- 选择 pip 安装:
- 已经有一个 Python 开发环境,且希望快速集成。
- 更倾向于 标准的 Python 包管理流程,或需要通过 pip 管理 UV 的版本。
- 你需要兼容性,例如在旧版系统或受限环境中使用。
- 在虚拟环境中与项目依赖隔离管理,或需在不同 Python 环境中使用不同 UV 版本。
UV换源
- 方法1:临时环境变量(单次生效)
bash
# 使用阿里云镜像源
export UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ uv pip install [包名]
# 或清华大学镜像源
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/
-
永久配置(推荐)
在用户目录下创建 uv.toml 文件(路径参考):
Linux/macOS:~/.config/uv/uv.toml
Windows:%APPDATA%\uv\uv.toml
添加国内镜像源 编辑文件内容如下:bash[[index]] url = "https://mirrors.aliyun.com/pypi/simple/" default = true # 或使用清华源 # url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
-
项目级定制
如果你的项目需要和团队成员保持镜像源统一,或者有特殊的包源需求,可以把配置写在项目根目录的 pyproject.toml 文件里。uv 会优先读取这个项目级的配置,非常适合团队协作。
bash
[[tool.uv.index]]
url="https://pypi.tuna.tsinghua.edu.cn/simple"
default=true
- 验证是否生效
bash
# 查看当前配置
uv config get index.url
# 安装测试包(观察下载速度和输出日志)
uv pip install -v numpy