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 版本管理。

更多推荐