You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合requirements.txt的pip安装与PEP508可选额外包?

解决方案

方法1:拆分依赖文件

最直接的方式是按场景拆分requirements文件,清晰区分基础依赖和场景依赖:

  • 基础依赖文件requirements.txt:
    pandas >= 2
    
  • 测试场景依赖文件requirements-test.txt:
    pytest[test] >= 7
    pytest-testdox[test]
    
  • 安装时合并加载:
    pip install -r requirements.txt -r requirements-test.txt
    

方法2:用空配置模拟extra(避免生成自定义包)

如果不想拆分文件,可通过setup.cfg定义场景依赖,但不声明任何实际项目包,这样既能用extra语法触发安装,又不会生成多余的本地包:

  • 创建setup.cfg文件:
    [metadata]
    name = dummy
    version = 0.0.0
    
    [options.extras_require]
    test =
        pytest[test] >= 7
        pytest-testdox[test]
    
  • 基础依赖仍放在requirements.txt:
    pandas >= 2
    
  • 安装基础依赖+测试场景依赖:
    pip install -r requirements.txt '.[test]'
    

原方式失效原因

pip install -r requirements.txt[test]无法生效,是因为pip的-r参数不支持给整个requirements文件附加extra标识。PEP508的[extra]语法仅针对单个包,全局的场景触发是项目配置文件(如pyproject.toml/setup.cfg)的特性,并非requirements.txt的功能。

内容的提问来源于stack exchange,提问作者strpeter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 13:20:23