Skip to content

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

操作步骤示例

基本工作流程

  1. 创建虚拟环境:
    bash
    uv venv .venv
  2. 激活虚拟环境:
    • Windows: .\.venv\Scripts\activate
    • Linux/Mac: source .venv/bin/activate
  3. 安装依赖:
    bash
    uv pip install -r requirements.txt

项目管理增强流程

bash
# 同步依赖并更新配置
uv add -r requirements.txt

# 验证安装结果
uv pip list

实践建议

  1. 优先使用 pyproject.toml

    toml
    [project]
    dependencies = [
        "flask>=3.0.0",
        "requests==2.31.0"
    ]

    现代 Python 项目建议采用 pyproject.toml 替代 requirements.txt 管理依赖

  2. 锁定依赖版本

    bash
    uv pip compile requirements.in -o requirements.txt

    使用 uv pip compile 从宽松定义生成确定性的依赖版本锁文件

  3. 加速安装技巧

    bash
    UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple uv pip install -r requirements.txt

    添加国内镜像源大幅提升安装速度(替换为相应镜像地址)