pip从GitHub源码安装无法自动拉取requirements.txt依赖的问题
问题根因
pip从Git等版本库地址直接安装Python包时,不会自动拉取仓库内requirements.txt声明的依赖。Python打包规范中,pip安装包时只会读取包自身打包配置(setup.py/setup.cfg/pyproject.toml)里install_requires字段声明的依赖,requirements.txt是面向开发/部署场景的依赖清单文件,不属于标准打包元数据,不会被pip自动解析。
你遇到的backoff依赖缺失,是因为OpenAlexAPI的维护者没有把requirements.txt里的运行依赖完整写入自身的打包配置,属于上游包打包不规范导致的问题。
解决方案
- 本地补全依赖(成本最低)
直接在你自己项目的setup.cfg的install_requires段里补上上游漏写的依赖即可,示例配置:
修改后重新执行install_requires = requests>=2.27.0, <3.0.0 rich>=12.3.0, <13.0.0 pydantic>=1.9.0, <2.0.0 backoff>=2.0.0 openalexapi @ git+https://github.com/dpriskorn/OpenAlexAPI.git@master#egg=openalexapipip install -e .就会自动安装缺失的backoff包,导入不再报错。 - 推动上游修复规范
如果你能给上游仓库提交修改,建议让维护者把requirements.txt中所有运行时需要的依赖,全部迁移到包自身的install_requires配置中。这是符合Python打包规范的正确做法,修复后所有用户通过pip安装该包时都能自动拉取全量依赖,不需要手动补装。
补充说明
不存在pip层面的配置可以实现「安装Git来源包时自动读取仓库内requirements.txt安装依赖」的效果。你提到的pip install -r 远程requirements.txt的手动安装方式,无法通过本地项目的打包配置自动触发,如果要自动化这个步骤,可以把该命令写到项目安装脚本、Makefile或者安装说明文档里。
内容的提问来源于stack exchange,提问作者astrochun
相关产品推荐
相关产品推荐

