🚀 uv:一个非常好用且超快的 Python包管理器与环境管理器
更新时间 :2025年12月19日
适用人群:Python 开发者、数据科学家、运维工程师、全栈开发者
🌟 什么是 uv?
uv 是由 Astral 团队(Python 社区知名贡献者)开发的一款超高速 Python 包管理器与环境管理器。
它基于 Rust 编写,性能远超传统的 pip、poetry、pipenv 等工具。
uv 不仅能安装包,还能:
- 快速解析依赖(秒级)
- 管理虚拟环境(
uv venv) - 运行 Python 脚本(
uv run) - 管理
pyproject.toml配置 - 支持
--native-tls、--trusted-host等高级网络选项
⚡ 为什么选择 uv?
| 特性 | uv |
传统工具(pip/poetry) |
|---|---|---|
| 安装速度 | ⚡️ 极快(10~100倍) | 慢(尤其复杂依赖) |
| 依赖解析 | 高效,支持增量解析 | 常卡顿,解析慢 |
| 虚拟环境管理 | 内置支持,超快创建 | 需额外命令或配置 |
与 pyproject.toml 兼容 |
✅ 完全支持 | ✅ 支持,但部分工具版本滞后 |
| 网络安全 | 支持 --native-tls,使用系统证书 |
依赖系统,易出证书问题 |
✅ 结论 :如果你追求极致效率 、现代化工作流 ,
uv是当前最值得投入的 Python 包管理工具。
🛠️ 安装 uv
✅ 方法一:使用官方脚本(推荐)
bash
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows(PowerShell)
Invoke-WebRequest -UseBasicParsing https://astral.sh/uv/install.ps1 | Invoke-Expression
📌 安装后,将
~/.local/bin(Linux/macOS)或%USERPROFILE%\.local\bin(Windows)加入PATH。
✅ 方法二:使用包管理器
-
Homebrew (macOS):
bashbrew install uv -
apt (Ubuntu/Debian):
bashsudo apt install uv -
Chocolatey (Windows):
bashchoco install uv -
Winget(Windows):
bashwinget install uv
安装完成后,验证安装是否成功:
uv
--version
📦 基础使用指南
1. 安装 Python 包(替代 pip install)
bash
# 查看可用的python版本
uv python list
# 安装特定python版本
uv python install 3.11.6
# 设置全局默认python版本
uv python default 3.12
# 安装 requests
uv pip install requests
# 安装多个包
uv pip install requests flask pandas
# 安装指定版本
uv pip install requests==2.31.0
# 安装开发依赖(如 pytest)
uv pip install -e .[dev]
💡 提示 :
uv pip install会自动创建虚拟环境(除非你显式使用--no-venv)。
2. 使用国内镜像源(解决 SSL/网络问题)
bash
# 使用清华镜像源(推荐)
uv pip install requests \
-i https://pypi.tuna.tsinghua.edu.cn/simple/ \
--trusted-host pypi.tuna.tsinghua.edu.cn \
--native-tls
✅ 为什么需要
--native-tls?因为
uv默认使用内部 TLS 实现,可能无法识别某些系统 CA 证书(如国内镜像源)。启用
--native-tls后,uv会使用操作系统原生 TLS 库,完美兼容系统证书。
3. 创建和管理虚拟环境
bash
# 创建虚拟环境(自动激活)
uv venv
# 指定路径创建
uv venv ./myenv
# 激活虚拟环境(Linux/macOS)
source myenv/bin/activate
# 激活虚拟环境(Windows)
myenv\Scripts\activate
# 退出虚拟环境
deactivate
🌟 亮点 :
uv venv比python -m venv快 5~10 倍。
4. 运行 Python 脚本(替代 python script.py)
bash
# 运行脚本,自动使用虚拟环境
uv run script.py
# 运行带有依赖的脚本
uv run -m mymodule
# 运行 Jupyter Notebook
uv run jupyter notebook
💡 优势:无需手动激活虚拟环境,命令自动识别依赖并运行。
5. 管理 pyproject.toml(现代 Python 项目配置)
toml
# pyproject.toml
[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "myproject"
version = "0.1.0"
description = "A sample project"
dependencies = [
"requests>=2.25.0",
"click>=8.0.0"
]
[project.optional-dependencies]
dev = [
"pytest>=6.0.0",
"black",
"flake8"
]
# uv sync 如果安装太慢,可以设置国内镜像源 https://pypi.tuna.tsinghua.edu.cn/simple
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"
使用 uv 管理依赖:
bash
# 安装所有依赖(包括 dev)
uv pip install -e .[dev]
# 安装运行依赖
uv pip install -e .
# 仅安装 dev 依赖
uv pip install -e .[dev]
🚩项目管理
uv 支持 pyproject.toml 格式的项目管理,这是现代 Python 项目的标准配置文件
初始化一个新项目:
uv init my_project
cd my_project
这会创建基本的项目结构和 pyproject.toml 文件。
安装项目的依赖:
uv sync
这个命令会根据 pyproject.toml 和 requirements.txt 安装所有依赖,类似于 pip install -e . 但更高效
🌍 高级技巧与最佳实践
| 场景 | 建议命令 |
|---|---|
| 使用华为镜像(需信任) | uv pip install requests -i https://mirrors.tools.huawei.com/pypi/simple/ --trusted-host mirrors.tools.huawei.com --native-tls |
| 使用阿里云镜像 | uv pip install requests -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --native-tls |
| 临时禁用 SSL 验证(不推荐) | uv pip install requests --allow-insecure-host |
| 清理缓存 | uv cache prune |
🧩 常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
invalid peer certificate: UnknownIssuer |
TLS 证书不被信任(常见于国内镜像) | 使用 --trusted-host + --native-tls |
uv 命令未找到 |
未加入 PATH 或安装失败 | 重新安装并检查 PATH |
| 依赖解析卡顿 | 依赖复杂或索引响应慢 | 使用 --native-tls + 国内镜像 |
✅ 总结:uv 使用建议清单
| 项目 | 建议 |
|---|---|
| 安装包 | uv pip install package |
| 使用镜像 | 推荐清华镜像 + --trusted-host + --native-tls |
| 创建环境 | uv venv |
| 运行脚本 | uv run script.py |
管理 pyproject.toml |
uv pip install -e .[dev] |
| 安全网络 | 永远优先使用 --native-tls |
📣 结语
uv不仅仅是一个工具,它代表了 Python 生态的未来方向 :
快、安全、现代化。
无论你是初学者还是资深开发者,从现在开始使用 uv,你将体验到前所未有的开发效率。
📎 GitHub 项目 :https://github.com/astral-sh/uv
📚 官方文档 :https://docs.astral.sh/uv