uv 从 requirements.txt 安装依赖
问题描述
在使用 Python 开发时,我们经常需要根据 requirements.txt
文件批量安装项目依赖。若你正在使用新一代的 Python 包管理工具 uv,该如何高效地实现这一操作?手动使用 uv pip install
逐个安装依赖项既繁琐又低效,尤其当依赖列表较长时,需要更便捷的解决方案。
解决方案
标准安装方法
在已激活的 uv 虚拟环境中,只需一条命令即可从 requirements.txt
安装所有依赖:
bash
uv pip install -r requirements.txt
说明
-r
参数表示读取 requirements 文件- 默认使用当前目录中的
requirements.txt
文件,也可指定路径如:uv pip install -r path/to/requirements.txt
- 命令执行时会自动解析并安装所有依赖及其子依赖
项目集成方法
若在管理整个 Python 项目(含 pyproject.toml
文件),使用 uv add
命令更佳:
bash
uv add -r requirements.txt
重要区别
此命令不仅安装依赖,还会将依赖项自动添加到项目的 pyproject.toml
配置文件中
适用于需要同步维护项目依赖声明的场景
使用场景区分
命令类型 | 适用场景 | 是否修改配置文件 |
---|---|---|
uv pip install -r | 独立环境安装或临时调试 | ❌ 不修改配置文件 |
uv add -r | 正式项目管理 | ✅ 更新 pyproject.toml |
操作步骤示例
基本工作流程
- 创建虚拟环境:bash
uv venv .venv
- 激活虚拟环境:
- Windows:
.\.venv\Scripts\activate
- Linux/Mac:
source .venv/bin/activate
- Windows:
- 安装依赖:bash
uv pip install -r requirements.txt
项目管理增强流程
bash
# 同步依赖并更新配置
uv add -r requirements.txt
# 验证安装结果
uv pip list
实践建议
优先使用
pyproject.toml
:toml[project] dependencies = [ "flask>=3.0.0", "requests==2.31.0" ]
现代 Python 项目建议采用
pyproject.toml
替代requirements.txt
管理依赖锁定依赖版本:
bashuv pip compile requirements.in -o requirements.txt
使用
uv pip compile
从宽松定义生成确定性的依赖版本锁文件加速安装技巧:
bashUV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple uv pip install -r requirements.txt
添加国内镜像源大幅提升安装速度(替换为相应镜像地址)