如何编写requirements文件实现pip批量安装多子模块及解决安装报错
错误原因
执行pip install -r requirements.txt时,若顶层requirements.txt仅包含-r对其他依赖文件的引用,部分pip版本会默认尝试安装当前工作目录(主仓库根目录),但根目录缺少setup.py或pyproject.toml,因此触发报错。
解决方法
方法一:Shell批量命令(推荐)
在主仓库根目录执行对应系统的命令,自动遍历所有子模块安装依赖:
# Linux/macOS(bash/zsh环境) for dir in */; do [ -f "$dir/requirements.txt" ] && pip install -r "$dir/requirements.txt" done
# Windows(PowerShell环境) Get-ChildItem -Directory | ForEach-Object { $reqFile = Join-Path $_.FullName "requirements.txt" if (Test-Path $reqFile) { pip install -r $reqFile } }
方法二:修改顶层requirements.txt
在顶层文件中添加一个基础依赖占位(避免pip尝试安装当前目录),同时补上遗漏的pyrtz子模块依赖引用:
# 添加基础依赖占位,防止pip安装当前目录 pip>=21.0 -r ./datamodels/requirements.txt -r ./mongobase/requirements.txt -r ./routingserver/requirements.txt -r ./runrouting/requirements.txt -r ./weatherrouting_v3/requirements.txt -r ./aws_login_handler/requirements.txt -r ./gribmanager/requirements.txt -r ./pyrtz/requirements.txt
之后在根目录执行原命令即可:
pip install -r requirements.txt
内容的提问来源于stack exchange,提问作者Tom McLean
相关产品推荐
相关产品推荐

