Logo
Published on

67.uv

Authors
  • avatar
    Name
    xiaobai
    Twitter

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 --version

3. 核心功能和使用

功能一:项目管理

创建新项目

# 创建新项目(类似 poetry newuv 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

# 第三步:添加 FastAPIUvicorn 为项目依赖
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.txt

5. 与传统工具对比

功能pip + venvpoetryuv
包安装✅ ⚡
虚拟环境管理
依赖解析✅ ⚡
项目脚手架
工具运行器
运行速度中等极快