当前位置:首页>python>uv:Python 超高速包管理工具的使用方法

uv:Python 超高速包管理工具的使用方法

  • 2026-10-15 09:48:23
uv:Python 超高速包管理工具的使用方法

uv 是由 Astral(Ruff 的创建者)开发的超快 Python 包管理器和解析器,用 Rust 编写。它结合了 pip、pip-tools 和 virtualenv 的功能。

安装 uv

快速安装(推荐)

# Linux/macOS
curl -LsSf https://astral.sh/uv/install.sh | sh

# 或使用 pip/pipx
pip install uv
pipx install uv

Windows 安装

# PowerShell
powershell -c"irm https://astral.sh/uv/install.ps1 | iex"

常用使用方法

1. 项目管理

# 初始化新项目
uv init myproject
cd myproject

# 创建虚拟环境
uv venv

# 激活虚拟环境
# Linux/macOS
source .venv/bin/activate
# Windows
.venv\Scripts\activate

2. 包管理

# 添加包到项目
uv add requests
uv add "flask>=2.0.0"
uv add pandas numpy matplotlib

# 添加开发依赖
uv add --dev pytest black ruff

# 从 requirements.txt 安装
uv pip install -r requirements.txt

# 安装当前项目(可编辑模式)
uv pip install -e .

# 移除包
uv remove requests

3. 锁文件和依赖解析

# 生成/更新锁文件
uv lock

# 根据锁文件同步环境
uv sync

# 更新所有依赖到最新版本
uv sync --upgrade

# 生成 requirements.txt
uv pip freeze > requirements.txt

4. 运行命令

# 在项目环境中运行命令(无需激活虚拟环境)
uv run python script.py

# 运行特定 Python 版本
uv run --python 3.10 python script.py

# 运行测试
uv run pytest

# 运行任何命令
uv run black . --check

5. 高级功能

# 使用指定 Python 版本
uv python install 3.11
uv run --python 3.11 python --version

# 快速创建项目模板
uv init --package mypackage

# 只生成锁文件而不安装
uv lock --no-sync

# 离线模式(使用缓存)
uv sync --offline

# 显示依赖树
uv pip list --tree

项目配置示例

pyproject.toml 配置示例

[project]
name = "myproject"
version = "0.1.0"
dependencies = [
"requests>=2.28.0",
"pandas>=1.5.0",
]

[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"black>=23.0.0",
]
test = [
"pytest-cov>=4.0.0",
]

[tool.uv]
python = ">=3.9"

工作流示例

# 1. 创建新项目
uv init myapp
cd myapp

# 2. 添加依赖
uv add fastapi "pydantic>=2.0.0"
uv add --dev pytest httpx

# 3. 设置 Python 版本
uv python install 3.11

# 4. 同步依赖
uv sync

# 5. 运行应用
uv run fastapi dev main.py

# 6. 更新依赖
uv sync --upgrade

# 7. 生产环境部署
uv sync --no-dev  # 只安装生产依赖

uv 与传统工具对比

命令
pip/venv
uv
说明
创建环境
python -m venv .venvuv venv
uv 快 10-100 倍
安装包
pip install requestsuv add requests
uv 自动更新 pyproject.toml
批量安装
pip install -r requirements.txtuv sync
uv 并行下载,速度快
冻结依赖
pip freezeuv pip freeze
uv 有更好的缓存机制

实用技巧

  1. 1. 全局缓存:uv 使用全局缓存,避免重复下载
  2. 2. 并行解析:依赖解析比 pip 快很多
  3. 3. 跨平台一致:在所有平台上行为一致
  4. 4. 向后兼容:兼容 pip 和 requirements.txt 格式
  5. 5. 可脚本化:适合 CI/CD 环境

常见问题

# 如果遇到权限问题
export UV_BUILD_ISOLATION=0

# 清理缓存
uv cache clean

# 查看版本
uv --version

# 获取帮助
uv --help
uv add --help

uv 最大的优势是速度 - 在大型项目中,依赖解析和安装速度通常比 pip 快 10-100 倍,特别适合 CI/CD 流水线和开发工作流。

最新文章

随机文章