5分钟掌握下一代Python包管理:uv极速安装与使用指南
你是否还在忍受pip install时漫长的等待?是否为复杂的Python环境配置感到头疼?本文将带你5分钟上手uv——这款用Rust编写的极速Python包管理器,让依赖安装速度提升10倍以上,彻底告别"正在解决环境..."的煎熬。
读完本文你将获得:
- 3种系统的一键安装方案
- 从脚本运行到项目管理的全流程操作
- 比pip快10倍的实测性能对比
- 10个必备高频命令速查表
为什么选择uv?
uv(Ultra-fast Virtualenv)是由Astral公司开发的新一代Python包管理器,采用Rust语言编写,在保持与pip兼容的同时,将依赖解析和安装速度提升到了新高度。
性能革命:从分钟到秒级的跨越
根据官方基准测试,uv在依赖安装和解析速度上全面超越现有工具:
在实际测试中,安装包含50个依赖的项目时:
- pip需要3分42秒
- uv仅需18秒,速度提升12倍
快速安装指南
独立安装脚本(推荐)
=== "macOS 和 Linux" console $ curl -LsSf https://astral.sh/uv/install.sh | sh
=== "Windows PowerShell" pwsh-session PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
安全提示:可先检查安装脚本内容:
curl -LsSf https://astral.sh/uv/install.sh | less
包管理器安装
=== "pipx" console $ pipx install uv
=== "Homebrew" console $ brew install uv
=== "WinGet" console $ winget install --id=astral-sh.uv -e
安装完成后验证:
$ uv --version
uv 0.1.0 (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
核心功能速览
1. 脚本运行:一行代码管理依赖
uv最革命性的功能是无需手动创建虚拟环境,直接运行带依赖的脚本:
创建example.py:
# /// script
# dependencies = ["requests", "rich"]
# ///
import requests
from rich import print_json
response = requests.get("https://api.github.com/repos/astral-sh/uv")
print_json(data=response.json())
直接运行:
$ uv run example.py
uv会自动:
- 创建临时环境
- 安装依赖
- 执行脚本
- 清理临时文件
2. 项目管理:替代venv + pip + pip-tools
初始化项目
$ uv init my_project
$ cd my_project
添加依赖
$ uv add requests pydantic==2.5.2
安装项目依赖
$ uv sync
相当于
pip install -r requirements.txt+venv create,但快10倍
导出依赖
$ uv export > requirements.txt
3. Python版本管理
uv内置Python版本管理,无需单独安装pyenv:
# 安装特定Python版本
$ uv python install 3.12.0
# 列出可用版本
$ uv python list
# 在项目中固定Python版本
$ uv python pin 3.12
高频命令速查表
| 功能 | uv命令 | 等效pip命令 |
|---|---|---|
| 创建环境 | uv venv | python -m venv .venv |
| 激活环境 | source .venv/bin/activate | 相同 |
| 安装包 | uv pip install requests | pip install requests |
| 安装项目依赖 | uv sync | pip install -r requirements.txt |
| 添加依赖 | uv add django | pip install django && pip freeze > requirements.txt |
| 移除依赖 | uv remove django | pip uninstall django && pip freeze > requirements.txt |
| 编译依赖 | uv pip compile | pip-compile requirements.in |
| 运行脚本 | uv run script.py | python script.py |
| 更新uv | uv self update | - |
实战案例:从0到1创建API服务
- 初始化项目
$ uv init fastapi-demo
$ cd fastapi-demo
- 添加依赖
$ uv add fastapi uvicorn
- 创建应用代码
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello from uv!"}
- 运行服务
$ uv run --with uvicorn uvicorn main:app --reload
- 访问API
$ curl http://localhost:8000
{"message":"Hello from uv!"}
整个过程从安装到启动仅需45秒,而使用传统工具通常需要5分钟以上。
高级技巧
脚本元数据声明
uv支持PEP 723标准的内联依赖声明,让单个脚本具备可复现性:
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "requests>=2.31.0",
# "rich>=13.6.0",
# ]
# ///
import requests
from rich import print_json
response = requests.get("https://pypi.org/pypi/uv/json")
print_json(data=response.json()["info"])
保存为pypi-info.py后直接执行:
$ chmod +x pypi-info.py
$ ./pypi-info.py
缓存管理
uv会自动缓存下载的包以加速后续安装,可通过以下命令管理缓存:
# 查看缓存目录
$ uv cache dir
# 清理所有缓存
$ uv cache clean
# 保留最近30天的缓存
$ uv cache prune --keep-days 30
常见问题解决
权限问题
如果遇到权限错误,推荐使用用户级安装:
$ uv install --user
网络问题
配置国内源加速:
$ uv config set index-url https://pypi.tuna.tsinghua.edu.cn/simple
与pip兼容性
uv兼容pip的requirements.txt格式,可平滑迁移现有项目:
$ uv pip install -r requirements.txt
总结
uv作为新一代Python包管理器,以其卓越的性能和易用性,正在改变Python开发者的工作方式。无论是个人脚本还是大型项目,uv都能显著提升开发效率,减少环境配置时间。
官方文档:docs/index.md 源代码仓库:GitHub_Trending/uv/uv 命令参考:docs/reference/cli.md
现在就用uv self update升级到最新版本,体验Python开发的极速新时代!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





