uv简介
uv
是一个较新的 Python 包管理工具,由 Astral 团队开发,旨在替代 pip
、pip-tools
、virtualenv
和部分 poetry
/pipenv
的功能。它的主要特点是:
- 🚀 极快的依赖解析和安装速度(用 Rust 编写)
- 🧩 自动管理虚拟环境
- 📦 支持锁文件(
uv.lock
)和传统的requirements.txt
- 🧼 统一和简化 Python 项目的依赖管理流程
安装uv
pip install uv
常用命令
操作 | 命令 |
---|---|
初始化项目 | uv init |
创建目录并初始化项目 | uv init project_name |
创建虚拟环境 | uv venv (自动创建 .venv ) |
激活虚拟环境 | 手动:source .venv/bin/activate 或在终端配置中启用 |
删除虚拟环境 | 删除 .venv/ 文件夹 |
安装依赖 | uv pip install requests |
升级依赖 | uv pip install --upgrade requests |
卸载依赖 | uv pip uninstall requests |
冻结依赖 | uv pip freeze > requirements.txt |
使用锁文件安装 | uv pip sync (读取 uv.lock ) |
生成锁文件 | uv pip compile (从 requirements.in ) |
显示当前使用的 Python | uv python |
安装 Python 版本(需 pyenv) | uv python --install 3.11 |
示例项目流程
# 1. 初始化项目(创建 venv 和 pyproject.toml)
uv init
# 2. 安装依赖
uv pip install requests flask
# 3. 查看当前依赖
uv pip freeze
# 4. 创建锁文件(类似 pip-tools 的 compile)
uv pip compile
# 5. 后续基于锁文件同步环境
uv pip sync
针对项目换源
在项目文件的pyproject.toml中,添加如下内容:
[tool.uv]
index-url = "https://pypi.tuna.tsinghua.edu.cn/simple/"
uv
与传统工具的区别
功能 | uv | pip/pip-tools | poetry/pipenv |
---|---|---|---|
速度 | ✅ 非常快(Rust) | 较慢 | 中等 |
虚拟环境管理 | ✅ 自动 | 需手动 | ✅ 自动 |
支持锁文件 | ✅ .lock | ✅(pip-tools) | ✅ |
pyproject.toml 支持 | ✅ | ❌ | ✅ |