Heroku 中的 H14 错误-“没有正在运行的 Web 进程”
- 2025-02-28 08:22:00
- admin 原创
- 94
问题描述:
部署到 heroku 时发生错误 H14 这是我的 procfile:
web: gunicorn -w 4 -b 0.0.0.0:$PORT -k gevent main:app
登录heroku:
2017-01-23T10:42:58.904480+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=meetcapstone.herokuapp.com request_id=df88efb5-a81a-4ac0-86dc-4e03d71266bb fwd="81.218.117.137" dyno= connect= service= status=503 bytes=
2017-01-23T10:42:59.009135+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=meetcapstone.herokuapp.com request_id=21cea981-36b0-4410-891f-548bbc29f0ee fwd="81.218.117.137" dyno= connect= service= status=503 bytes=
要求:
Flask==0.11.1
passlib==1.7.0
SQLAlchemy==1.1.5
Werkzeug==0.11.15
gunicorn==19.0.0
gevent==1.2.1
解决方案 1:
问题在于您没有运行任何 Web dyno。您可以通过以下方式告诉 Heroku 执行此操作:
$ heroku ps:scale web=1
这将强制 Heroku 启动一个 web dyno,从而执行你的 gunicorn 命令。
解决方案 2:
经过 3 个小时的调试,我终于明白为什么我的应用程序会导致这个错误:
我的
Procfile
字母大小写错误gunicorn
没有安装在我的venv
在我看来,这个错误应该由 Heroku 端引发。对于初学者来说,这种错误很难追踪。
更新:
澄清一下,Procfile
的大小写正确,procfile
的大小写不正确。 它应该以大写字母开头"P"
。
有关dyno 配置的更多信息- 有关初始化heroku 应用程序的更多信息。
解决方案 3:
我遇到了同样的问题,但原因不同。我有一个业余套餐,但后来取消了它并恢复到免费套餐。这样做导致了错误,我修复它的方法是重新运行来自 cli 的命令:
heroku ps:scale web=1
解决方案 4:
在此命令之前:
heroku ps:scale web=1
我不得不再次删除并添加 buildpacks 并将其清空提交并重新部署到 heroku。
heroku buildpacks:clear
heroku buildpacks:add --index heroku/python
解决方案 5:
我的问题是 Heroku 删除了免费计划。要解决此类问题,请转到 Heroku 并选择/更改您的免费计划,例如“生态”计划。
解决方案 6:
我有一个 UAT 版本,仅在客户端开发期间启用。
我有一个自定义测功机脚本,但它已转换为免费版本。因此,由于我的脚本未运行,因此应用程序无法启动。当我启用测功机时,切换开关仍处于关闭状态 :rolleyes:
解决方案 7:
我这里也遇到了问题。我的问题是我的 Procfile 是“Procfile.txt”。解决我问题的方法是删除 Procfile 中的文件扩展名,然后重新提交并将内容推送到 heroku
解决方案 8:
这不是你的代码的问题,但我已经收到几次这个错误信息,而导致它的错误是编写
web:gunicorn
而不是
web: gunicorn
那个空间确实会引起很多问题。
解决方案 9:
登录您的 Heroku 仪表板并打开您的项目。
前往“设置”。
heroku/python
从 buildpack 列表中删除然后点击添加buildpack→选择“Python”→保存更改。
在您的代码中激活您的环境。
跑步
heroku ps:scale web=1
。
您已经完成了!
解决方案 10:
我没有信誉来回复正确的评论,但对我来说,问题是我的根目录中没有run.gunicorn.sh文件,这导致了相同的“没有运行 Web 进程”错误。
如果您没有此文件,请创建它并内容如下:
gunicorn -b :5000 --access-logfile - --error-logfile - build:app
其中“build”是您的 python 文件的名称(在本例中为 build.py),app 是代码中应用程序的名称。
正如其他人已经指出的那样,还要确保 gunicorn 包含在 requirements.txt 中。
解决方案 11:
是的,我也在使用web heroku-php-apache2
dyno,并将其恢复到免费层,这导致 dyno 进入睡眠状态,幸运的是,执行heroku ps:scale web=1 -a <app name>
产生了神奇的效果。
解决方案 12:
首先尝试缩小测功机的规模。
heroku ps:scale web=0
然后将其扩大。
heroku ps:scale web=1
解决方案 13:
我通过进入配置 Dynos 并手动启用我唯一的 dyno 来解决了这个问题。
解决方案 14:
呃...这花了一些时间,所以我必须做的修复是:
‘Procfile’ 以大写字母 P 开头。
web: gunicorn wsgi:app
`web:` ( procfile 后面有一个空格)确保 requirements.txt 位于根项目文件夹中。
解决方案 15:
有时运行heroku ps:scale web=1
并不能解决问题,我发现一个有用的解决方法是扩大测功机的规模,然后将其缩小到初始价格,即先将其提高到 25 美元,然后再缩小到 7 美元
解决方案 16:
在我的例子中,Procfile 在一个分支中,但我正在推送另一个没有 Procfile 的分支
解决方案 17:
将您的 Procfile 文件从 web:gunicorn 更改为 web gunicorn(删除“:”)
解决方案 18:
我在 Web GUI 上缺少 dynos。用于缩放的 cli 命令不起作用。我可能还使用了错误的 run:web 声明,缺少 $PORT。要修复:
heroku.yml 必须有一个使用 $PORT var 的 web 声明:
build:
docker:
web: Dockerfile
run:
web: uvicorn main:app --reload --host 0.0.0.0 --port $PORT
然后我推送到了 heroku。
此后,它必须已添加 Web dyno,然后我才能运行:
heroku ps:scale web=1
现在 fastapi uvicorn 可以运行了。
解决方案 19:
注意 Procfile 的命名和位置 ( https://devcenter.heroku.com/articles/procfile ) Procfile 始终是一个名为 Procfile 的“简单文本文件”,没有文件扩展名。(不接受 Procfile.txt!)Procfile 必须位于应用程序的根目录中。如果放在其他任何地方,它将不起作用。
解决方案 20:
遇到了完全相同的问题,结果发现我遇到Profile
了.gitignore
解决方案 21:
我将 django Procfile 放在 settings.py 目录中,而不是根目录中,这导致出现 H14 错误。我用这个修复了错误,他们说我不需要做任何其他事情。
Procfile
web:gunicorn <django-root-name(包含 wsgi)>.wsgi
解决方案 22:
对于任何遇到这种情况的人来说......
删除你的 Procfile
使用大写字母 P 创建“Procfile”。
在您的 Procfile 中输入:(
web: gunicorn <nameOfRootFile>:app
在 procfile 中的 web: 后面有一个空格)例如,web: gunicorn app:app
我编写的另一种有效方法是这样的:web: gunicorn -w 4 "app:create_app()" -t 120
确保 requirements.txt 位于根项目文件夹中。(
pip freeze > requirements.txt
如果您尚未创建文件,则可以运行部署到 heroku
heroku ps:scale web=1
(您可以指定应用程序名称来喜欢这个heroku ps:scale web=1 -a appname
最后在终端运行 heroku restart
heroku 打开
这些都是我为使它工作而采取的步骤
解决方案 23:
web: gunicorn weather.wsgi --log-file -
这对我来说很有效,只需确保您的Procfile格式正确,并指定您要连接的应用程序,在我的情况下是天气应用程序。尽情享受吧
解决方案 24:
我遇到了同样的问题,因为我的应用程序之前部署在免费计划中,其大小超过 300MB。当我执行以下操作时,应用程序再次正常运行:
将帐户升级至环保计划
删除了应用程序
在 heroku 上为同一个项目创建新的应用程序并进行部署。
解决方案 25:
对我有用的是在第二行添加procfile
:
heroku ps:scale web=1
第一行必须包含:
web: gunicorn "filename":"main method name"
扫码咨询,免费领取项目管理大礼包!