Heroku部署Web应用成功后访问报Application Error求助
问题根因
核心故障点从日志可以直接定位:web dyno启动时抛出bash: gunicorn: command not found错误,进程退出状态码127代表执行环境中找不到指定命令。你配置的web进程启动命令为gunicorn app:run,但Heroku部署环境内未安装gunicorn依赖,导致web进程反复启动失败进入崩溃状态,最终触发H10「App crashed」错误,访问应用时就会显示Application error提示。
日志前期出现的H81「Blank app」报错是代码部署完成前空应用的临时状态,和当前故障无关。
修复步骤
- 检查项目根目录下的Python依赖清单文件
requirements.txt,确认已添加gunicorn依赖,可直接写入稳定版本配置:gunicorn==20.1.0 - 本地开发环境先执行
pip install gunicorn完成安装,再执行pip freeze > requirements.txt刷新依赖清单,避免漏记依赖 - 核对Procfile中的web启动命令是否正确:gunicorn需要直接传入WSGI应用实例,而非调用run方法。如果你的入口文件是
app.py、内部定义的Flask/FastAPI实例名为app,正确写法应为web: gunicorn app:app;只有使用应用工厂模式时才需要调整为对应工厂函数入口,app:run属于错误写法,会导致gunicorn无法正确加载应用 - 检查
.gitignore规则,确认requirements.txt和Procfile没有被忽略,否则Heroku部署时无法读取这两个文件,既不会安装依赖,也会用默认启动规则导致启动失败 - 完成上述修改后,将变更提交到Git仓库,重新推送到Heroku触发部署。部署完成后执行
heroku ps --app 你的应用名,确认web dyno状态为up而非crashed,即可正常访问应用。
内容的提问来源于stack exchange,提问作者Detox
相关产品推荐
相关产品推荐

