1. 什么是 uv? #
uv 是一个用 Rust 编写的极速 Python 包管理器和工具运行器,由 Astral 团队开发(也是 Ruff 和 Uvicorn 的创建者)。
核心特点:
- 极速:比 pip 和 poetry 快 10-100 倍
- 一体化:结合了 pip、pipenv、poetry、virtualenv 等功能
- 兼容:兼容 pip 和 pip-tools 的工作流
- 现代:专为现代 Python 项目设计
2. 安装 uv #
快速安装(推荐): #
# Linux 和 macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 或者使用 pip(但 uv 的目标是替代 pip)
pip install uv验证安装: #
uv --version3. 核心功能和使用 #
功能一:项目管理 #
创建新项目:
# 创建新项目(类似 poetry new)
uv init my-project
cd my-project
# 使用特定 Python 版本创建项目
uv init --python 3.11 my-project添加依赖:
# 添加生产依赖
uv add flask
# 添加开发依赖
uv add --dev black ruff pytest
# 查看当前依赖
uv tree功能二:极速包安装 #
基本安装:
# 安装单个包(比 pip 快得多)
uv add requests
# 安装多个包
uv add pandas numpy matplotlib
# 安装特定版本
uv add "django==4.2.1"功能三:虚拟环境管理 #
自动虚拟环境:
# uv 会自动创建和管理虚拟环境
uv add django手动管理环境:
# 创建虚拟环境
uv venv
# 激活环境(和传统方式一样)
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate功能四:运行工具和脚本 #
直接运行工具:
# 运行代码格式化
uv run black .
# 运行 linting
uv run ruff check .
# 运行测试
uv run pytest
# 运行自定义脚本
uv run python main.py运行未安装的工具:
# 临时安装并运行工具(类似 pipx)
uv tool run cowsay -t "Hello UV!"4. 项目工作流示例 #
4.1 完整项目创建流程 #
# 第一步:用 uv 初始化一个新项目(my-web-app)
uv init my-web-app
# 第二步:进入新建的项目目录
cd my-web-app
# 第三步:添加 FastAPI 和 Uvicorn 为项目依赖
uv add fastapi uvicorn
# 第四步:添加开发依赖(如代码格式化和测试工具)
uv add --dev black ruff pytest
# 第五步:用 uv 运行开发服务器(自动查找并运行 uvicorn 服务,支持自动重载)
uv run uvicorn main:app --reload
# 第六步:用 uv 运行代码格式化工具 black
uv run black .
# 第七步:用 uv 运行代码检查工具 ruff
uv run ruff check .
# 第八步:用 uv 运行测试工具 pytest
uv run pytest# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}uv run: 使用 uv 运行命令,自动处理虚拟环境uvicorn: ASGI 服务器main:app: 从main.py导入app实例--reload: 开发模式,代码修改后自动重启
4.2 依赖管理 #
# 查看依赖树
uv tree
# 同步依赖(确保环境精确匹配)
uv sync
# 生成 requirements.txt
uv pip freeze > requirements.txt5. 与传统工具对比 #
| 功能 | pip + venv | poetry | uv |
|---|---|---|---|
| 包安装 | ✅ | ✅ | ✅ ⚡ |
| 虚拟环境管理 | ✅ | ✅ | ✅ |
| 依赖解析 | ❌ | ✅ | ✅ ⚡ |
| 项目脚手架 | ❌ | ✅ | ✅ |
| 工具运行器 | ❌ | ❌ | ✅ |
| 运行速度 | 慢 | 中等 | 极快 |