Python包管理新篇章!解析uv工具的高效解决方案
📦 项目地址
GitHub: https://github.com/astral-sh/uv
✅ 一句话总结 uv 的特点:
uv 是一个快速、现代的 Python 包管理器,支持虚拟环境、依赖安装、lock 文件生成,兼容 pip + requirements.txt + pyproject.toml。
🛠️ 安装 uv
curl -Ls https://astral.sh/uv/install.sh | sh
或者通过 cargo(Rust 的包管理器)安装:
cargo install uv
安装完成后,使用 uv --version 验证。
🚀 常见用法教程
-
创建虚拟环境
uv venv
默认会在当前目录创建 .venv/ 文件夹。
激活虚拟环境(Unix):
source .venv/bin/activate -
安装依赖
- 使用 requirements.txt:
uv pip install -r requirements.txt - 单独安装某个包:
uv pip install requests flask - 将当前环境依赖保存到 requirements.txt:
uv pip freeze > requirements.txt
-
使用 lock 文件
uv pip compile requirements.txt
会生成一个 requirements.lock 文件(包含精准的版本锁定信息,可复现安装)。
uv pip install -r requirements.lock -
支持 pyproject.toml(如 poetry 项目)
如果你项目是基于 pyproject.toml 的结构(如 poetry 或 PDM 管理),也可以使用 uv:
uv pip install -r pyproject.toml
🔍 文件说明
文件 说明
requirements.txt 传统的依赖列表(如 flask>=2.0
)用于快速安装,不锁定子依赖版本
requirements.lock uv pip compile
自动生成的锁文件,记录所有依赖和版本确保团队/部署环境一致
pyproject.toml 现代 Python 项目元数据文件(如项目名、版本、依赖)被 poetry、PDM、hatch 等现代工具采用
✅ 典型项目工作流(推荐)
uv .venv # 创建虚拟环境
source .venv/bin/activate
uv pip install -r requirements.txt
uv pip compile requirements.txt # 生成 lock 文件
uv pip compile requirements.txt --output requirements.lock # 需要重定向文件输出保存为文件
部署时:
uv pip install -r requirements.lock # 安装完全一致的依赖版本
⚡️ 为什么用 uv 而不是 pip?
功能 pip uv
安装速度 慢 🚀 极快(Rust 编写)
并行下载 ❌ 不支持 ✅ 支持
lock 文件支持 ❌ 需 pip-tools ✅ 内置
虚拟环境创建 需 venv ✅ 内置
多种格式支持 requirements.txt ✅ requirements.txt
, pyproject.toml
, lock
示例项目结构:
my_project/
├── app.py
├── requirements.txt
├── requirements.lock
└── .venv/