uv

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

uv

uv

Fast Python package and project manager with built-in virtual environment management.
一款快速的Python包和项目管理器,内置虚拟环境管理功能。

Project Setup

项目设置

bash
uv init my-app             # App project
uv init my-lib --lib      # Library project
uv init --script script.py # Standalone script
uv python pin 3.11        # Pin Python version
bash
uv init my-app             # 应用项目
uv init my-lib --lib      # 库项目
uv init --script script.py # 独立脚本
uv python pin 3.11        # 固定Python版本

Dependencies

依赖管理

bash
uv add requests           # Add dependency
uv add --dev pytest       # Add dev dependency
uv add --optional ml scikit-learn  # Add optional
uv remove requests        # Remove dependency
uv tree                   # Show dependency tree
uv lock                   # Update lockfile only
uv export > requirements.txt  # Export to requirements.txt
bash
uv add requests           # 添加依赖
uv add --dev pytest       # 添加开发依赖
uv add --optional ml scikit-learn  # 添加可选依赖
uv remove requests        # 移除依赖
uv tree                   # 显示依赖树
uv lock                   # 仅更新锁定文件
uv export > requirements.txt  # 导出到requirements.txt

Virtual Environment

虚拟环境

bash
uv sync                   # Sync dependencies
uv sync --no-dev         # Skip dev deps
uv sync --all-extras     # Include all optional
uv sync --refresh        # Recreate venv
bash
uv sync                   # 同步依赖
uv sync --no-dev         # 跳过开发依赖
uv sync --all-extras     # 包含所有可选依赖
uv sync --refresh        # 重新创建虚拟环境

Running Code

运行代码

bash
uv run python script.py   # Run script
uv run -m pytest         # Run module
uv run --with requests script.py  # Temp dependency
uv run --extra ml train.py  # Use optional deps
uv run --env-file .env script.py  # Load .env
bash
uv run python script.py   # 运行脚本
uv run -m pytest         # 运行模块
uv run --with requests script.py  # 临时依赖
uv run --extra ml train.py  # 使用可选依赖
uv run --env-file .env script.py  # 加载.env文件

Python Management

Python版本管理

bash
uv python list           # List versions
uv python install 3.12   # Install version
uv python pin 3.11       # Set project version
uv python upgrade --all  # Upgrade all
bash
uv python list           # 列出版本
uv python install 3.12   # 安装版本
uv python pin 3.11       # 设置项目Python版本
uv python upgrade --all  # 升级所有版本

Tools

工具使用

bash
uvx ruff check .         # Run tool once
uv tool install ruff     # Install globally
uv tool list             # List tools
uv tool upgrade ruff     # Upgrade tool
bash
uvx ruff check .         # 一次性运行工具
uv tool install ruff     # 全局安装工具
uv tool list             # 列出工具
uv tool upgrade ruff     # 升级工具

Building & Publishing

构建与发布

bash
uv build                 # Build distributions
uv publish               # Publish to PyPI
bash
uv build                 # 构建发行版
uv publish               # 发布到PyPI

Project Versioning

项目版本控制

bash
uv version               # Show current version
uv version 1.2.3         # Set version
uv version --bump major  # Bump major version
uv version --bump minor  # Bump minor version
uv version --bump patch  # Bump patch version
bash
uv version               # 查看当前版本
uv version 1.2.3         # 设置版本
uv version --bump major  # 升级主版本号
uv version --bump minor  # 升级次版本号
uv version --bump patch  # 升级修订版本号

Code Formatting

代码格式化

bash
uv format                # Format Python code
uv format --check        # Check formatting without changes
bash
uv format                # 格式化Python代码
uv format --check        # 检查格式(不修改代码)

Authentication

身份验证

bash
uv auth login            # Login to package index
uv auth logout           # Logout from package index
uv auth status           # Show authentication status
bash
uv auth login            # 登录包索引
uv auth logout           # 登出包索引
uv auth status           # 查看身份验证状态

pyproject.toml

pyproject.toml

toml
[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = ["requests>=2.31.0"]

[project.optional-dependencies]
ml = ["scikit-learn>=1.0.0"]

[dependency-groups]
dev = ["pytest>=7.0.0", "ruff>=0.1.0"]
toml
[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = ["requests>=2.31.0"]

[project.optional-dependencies]
ml = ["scikit-learn>=1.0.0"]

[dependency-groups]
dev = ["pytest>=7.0.0", "ruff>=0.1.0"]

Tips

小贴士

  • uv run
    handles venv automatically
  • Commit
    uv.lock
    for reproducibility
  • Use
    --with
    for one-off dependencies
  • uvx
    for running tools without install
  • uv sync --locked
    in CI
  • Tools are isolated from project deps
  • Fast: 10-100x faster than pip
  • uv run
    会自动处理虚拟环境
  • 提交
    uv.lock
    以保证环境可复现
  • 使用
    --with
    来添加一次性依赖
  • 使用
    uvx
    无需安装即可运行工具
  • 在CI中使用
    uv sync --locked
  • 工具与项目依赖相互隔离
  • 速度快:比pip快10-100倍