GitHub Actions无法pip安装含子模块依赖的Python包求助
GitHub Actions中pip安装含子模块依赖的Python包失败问题
问题背景
- 本地pip安装Python包正常,但GitHub Actions执行时无法完成安装,报错找不到依赖包
discordAI-modelizer - 主包包含指向另一个Python包的子模块,该依赖已在
requirements.txt中声明 - 已确认GitHub Actions中子模块已初始化,且checkout完成后子模块目录的所有文件均存在
- 具体错误信息:
ERROR: Could not find a version that satisfies the requirement discordAI-modelizer (from discordai) (from versions: none)
ERROR: No matching distribution found for discordAI-modelizer
遗漏步骤排查与解决方法
1. 先安装子模块依赖,再安装主包
GitHub Actions仅会拉取子模块代码,但不会自动安装子模块内的Python包。需在安装主包前,手动进入子模块目录执行安装命令:
cd 子模块相对路径/discordAI-modelizer pip install . cd ../ pip install .
2. 修改requirements.txt指向本地子模块路径
若requirements.txt中直接写包名,pip会默认从PyPI拉取而不是本地子模块。可将依赖声明改为本地路径:
# 替换原有的discordAI-modelizer为子模块相对路径 ./子模块相对路径/discordAI-modelizer
此配置会让pip优先安装本地子模块内的包,而非去PyPI查找。
3. 校验子模块的setup.py配置
确认子模块的setup.py中name字段与主包依赖的名称完全一致(注意:pip对包名大小写不敏感,但本地环境可能因路径匹配成功,远程环境易出现大小写不匹配问题)。
4. 对齐GitHub Actions与本地的Python环境
检查GitHub Actions使用的Python版本、pip版本是否与本地一致,避免环境差异导致安装失败。可在Actions步骤中指定对应版本:
- name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.10" # 替换为本地使用的Python版本
内容的提问来源于stack exchange,提问作者Adib B
相关产品推荐
相关产品推荐

