Python Twitter机器人关联GitHub后Heroku部署报buildpack不兼容错误
部署报错排查解决步骤
这个报错本质是Heroku的Python构建包自动校验环节没通过,和你放没放Procfile、runtime.txt没有直接的绑定关系,按下面的顺序排查基本都能解决:
- 先查最容易漏的规则:Heroku的Python构建包要触发识别,首先得在应用根目录扫到依赖声明文件,也就是
requirements.txt、Pipfile、pyproject.toml这三类里至少有一个,这个判断优先级比Procfile高多了。很多人写完代码直接传仓库,只记得放Procfile和Python版本配置,忘了把项目依赖导出成对应的声明文件,直接就会跳这个检测失败的错。 - 再核对文件实际存放的层级:别光看main分支里有这些文件,要确认这些文件是直接在仓库最外层,不是塞在比如
twitter-bot这种子文件夹里——Heroku拉完代码只会从仓库根目录扫构建标识,不会钻到子文件夹里找。另外要对着报错日志里的commit哈希7f802d5f,去GitHub上翻这个提交对应的文件树,确认你要部署的那个代码版本里,这些配置文件是真的在根目录,不是你本地改了没push,拉了个没带配置的旧commit来构建。 - 查配置文件的隐形格式问题:
- 确认Procfile没有被Windows系统自动加后缀,变成
Procfile.txt,Heroku根本不认这个带后缀的文件; - 确认runtime.txt里的Python版本格式是规范的
python-x.x.x,没有多余空格、隐藏换行导致读取异常。
- 确认Procfile没有被Windows系统自动加后缀,变成
- 最后兜底的方案:要是前面都查过了还是报错,就直接在Heroku应用的设置里手动指定Python构建包,跳过自动检测的逻辑——刚关联GitHub的新应用偶尔会有构建包匹配的缓存延迟,手动指定之后就不会走自动判断那步,直接用Python环境构建。
内容的提问来源于stack exchange,提问作者Vito
相关产品推荐
相关产品推荐

