在 Python 生态中,uv 是一个超高速的 Python 包安装器和解析器,同时也支持项目管理和环境管理。

它由 Astral 团队开发(该团队也是知名代码格式化工具 Ruff 的开发者),使用 Rust 编写,旨在替代 pipvirtualenvpoetrypip-tools 等多个工具。

以下是关于 uv 的核心要点:

1. 主要特点

  • 极速:由于是用 Rust 编写的,它的性能比传统的 Python 工具(如 pip)快 10-100 倍。
  • 多功能:它不仅仅是一个包管理器,还能管理虚拟环境、解析依赖、构建包等。
  • 兼容性好:支持标准的 Python 包格式(PEP 517/518),可以与现有的 requirements.txtpyproject.toml 工作流无缝衔接。
  • 一体化:官方口号是“一个工具替代多个”,它可以同时处理安装、环境创建、依赖锁定等任务。

2. 常用命令示例

uv 的命令结构通常分为几个子命令:

  • 管理虚拟环境

    # 创建虚拟环境
    uv venv
    
    # 激活环境(或配合 --system-site-packages 使用)
    source .venv/bin/activate
    
  • 安装/管理包 (替代 pip)

    # 安装包(速度极快)
    uv pip install requests
    
    # 安装 requirements.txt
    uv pip install -r requirements.txt
    
    # 升级包
    uv pip install --upgrade requests
    
  • 项目管理 (类似 poetry)

    # 初始化项目
    uv init
    
    # 添加依赖
    uv add pandas numpy
    
    # 删除依赖
    uv remove numpy
    
  • 运行脚本

    # 在隔离环境中运行 Python 脚本
    uv run python script.py
    

3. 如何安装

你可以通过官方提供的脚本快速安装(支持 macOS, Linux, Windows):

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

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

4. 常见误区

  • 不是 uvicorn:有时候初学者会混淆 uvASGI 服务器 uvicornuvicorn是运行 Python Web 应用(如 FastAPI)的服务器,而uv` 是包和环境管理工具。
  • 不是 pip 的简单封装:虽然它可以替代 pip 命令(uv pip),但它有自己独立的依赖解析逻辑,速度更快。

总结

如果你正在寻找更快的 Python 包安装体验,或者希望用一个工具同时管理虚拟环境、依赖和项目结构,uv 是目前 Python 社区最推荐的现代化替代方案。特别是对于追求开发效率的开发者来说,它已经非常成熟且值得尝试。