UV

1. 什么是 UV?

UVAstral 公司推出的一款 下一代 Python 包管理与环境管理工具
它的定位相当于 pip + venv + poetry + pip-tools + rye 的合体,目标是 快速、简洁、零配置

核心特性:

  • 极快的安装速度:基于 Rust 编写,比 pip 快几十倍。
  • 自动虚拟环境管理:无需手动 python -m venv,UV 会帮你创建 .venv
  • 统一依赖文件:使用 pyproject.toml 描述项目,不再分散在 requirements.txt / setup.py
  • 兼容 pip:能直接读取 requirements.txt
  • 支持多 Python 版本管理:类似 pyenv,但内置在 UV 里。

2. UV 会生成哪些文件?

(1) .venv/

  • 存放虚拟环境。
  • UV 默认会在项目根目录下创建 .venv 文件夹。
  • 类似于 python -m venv .venv 的结果,但由 UV 自动管理。

(2) pyproject.toml

  • 现代 Python 项目依赖声明的 统一规范文件
  • 替代 requirements.txtsetup.py
  • UV 在你第一次添加依赖时自动生成。
  • 示例:
[project]
name = "my-app"
version = "0.1.0"
dependencies = [
    "fastapi",
    "uvicorn"
]

[tool.uv]
dev-dependencies = [
    "pytest",
    "black"
]

3. 常用命令

(1) 初始化项目

uv init my-app

自动生成:

  • pyproject.toml
  • .venv/

(2) 安装依赖

uv add requests

会自动写入 pyproject.toml[project.dependencies]

等价于:

pip install requests

但无需手动修改 requirements.txt

(3) 安装开发依赖

uv add --dev pytest black

写入:

[tool.uv]
dev-dependencies = ["pytest", "black"]

(4) 安装所有依赖

uv sync

根据 pyproject.toml 安装依赖(类似 npm install)。

(5) 运行命令

uv run python main.py

等价于:

source .venv/bin/activate
python main.py

但不需要手动进入虚拟环境。

(6) 升级依赖

uv upgrade requests

(7) 管理 Python 版本

uv python install 3.11
uv python list

内置了 Python 下载和管理功能,不需要额外 pyenv


4. 与其他工具对比

工具 功能 缺点
pip 安装包 慢,不管理环境
venv 虚拟环境 需手动切换
pip-tools 依赖锁定 语法复杂
poetry 项目管理+依赖管理 较重,性能慢
rye 类似 Poetry 的新工具 生态还在发展
uv 以上功能一体化,快、轻量 还在迭代中

5. UV 的应用场景

  • 个人开发:快速建项目,不用再手动建虚拟环境。
  • 团队协作pyproject.toml 是标准文件,兼容性强。
  • CI/CDuv sync 保证依赖一致,速度比 pip install 快很多。
  • 学习/实验:一条命令起环境,不再被 Python 环境问题困扰。

6. 总结

UV 是一款 全能型 Python 包和环境管理工具,可以让你不再纠结:

  • pip install 还是 pip-tools
  • venv 还是 virtualenv
  • requirements.txt 还是 pyproject.toml
  • pyenv 还是系统自带 Python?

用一句话总结:
👉 一个 uv,搞定依赖、虚拟环境和 Python 版本管理。

更多推荐