UV- 全能型 Python 包和环境管理工具
·
UV
1. 什么是 UV?
UV 是 Astral 公司推出的一款 下一代 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.txt、setup.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/CD:
uv sync保证依赖一致,速度比pip install快很多。 - 学习/实验:一条命令起环境,不再被 Python 环境问题困扰。
6. 总结
UV 是一款 全能型 Python 包和环境管理工具,可以让你不再纠结:
pip install还是pip-tools?venv还是virtualenv?requirements.txt还是pyproject.toml?pyenv还是系统自带 Python?
用一句话总结:
👉 一个 uv,搞定依赖、虚拟环境和 Python 版本管理。
更多推荐


所有评论(0)