为什么我在Heroku上收到意外的错误代码H14?

时间:2019-03-26 17:51:38

标签: python git heroku

我在Heroku上收到许多错误代码H14,但我不确定如何解决它们。我正在运行Windows计算机。

我尝试在Heroku网站上解决此问题。但是,他们建议的问题是让我使用命令“ heroku ps:scale web = 1”。当我使用此命令时,控制台说它“找不到该进程类型(网络)”。当我在Heroku上查询时,它说我的buildpack安装不正确。但是,我只有一个buildpack“ heroku / python”,所以我看不到这怎么可能导致错误。

这是我输入“ heroku logs --tail”时收到的第一个错误代码

2019-03-26T17:37:06.013914+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=face-detector.herokuapp.com request_id=8c5dd093-2601-469e-8782-ec08b07919b2 fwd="143.229.241.34" dyno= connect= service= status=503 bytes= protocol=https
2019-03-26T17:37:06.989631+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=face-detector.herokuapp.com request_id=091d4e7a-6883-4e4c-b528-2777fb6aa05c fwd="143.229.241.34" dyno= connect= service= status=503 bytes= protocol=https
2019-03-26T17:37:07.000000+00:00 app[api]: Build succeeded
2019-03-26T17:37:13.507225+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=face-detector.herokuapp.com request_id=00aec941-e4c6-46b6-a641-0a2b5ecd6eac fwd="143.229.241.34" dyno= connect= service= status=503 bytes= protocol=https
2019-03-26T17:37:14.646479+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=face-detector.herokuapp.com request_id=88c5bb9e-9468-4a8f-ad76-213c08af4273 fwd="143.229.241.34" dyno= connect= service= status=503 bytes= protocol=https

当我尝试使用“ heroku ps:scale web = 1”来修正问题时,我得到了

Scaling dynos... !
!    Couldn't find that process type (web).

我的Procfile可能有问题吗?此刻,我的Procfile已

web: gunicorn app:FaceDetector

1 个答案:

答案 0 :(得分:0)

首先,我尝试了解决方案“使用 Unix 样式的行结尾保存您的 Procfile 并确保它不包含任何无关的字符,除了末尾的换行符”,但没有奏效。

我的解决方案:

  1. 确保您的 Procfile 正确

    • Procfile 是 Procfile,而不是 ProcFile、profile、procfile...
    • Procfile.txt(或任何文件类型)不正确。只是Procfile。
    • Procfile 应该在根目录中,也就是“Git 存储库的顶级文件夹”
    • Procfile 中的内容必须准确。没有多余或奇怪的字符、空格、换行符、注释
      • 我的应用程序是 web(Python 和 Flask),那么内容应该是 web: gunicorn <filename>:<variable_name>。示例:web gunicorn application:app。 Gunicorn = 生产质量的 Web 服务器。 (Flask 的内置 Web 服务器“足以进行测试,但可能不是您想要在生产中使用的。”)。 根目录中的application = application.pyapp = Flask(__name__)
      • 除了 web 之外,Heroku 具有不同的进程类型,因此您应该查看他们的文档。
  2. 如果 Procfile 是错误的并且您修复了,并且事情没有改变。

    • 必须从 git 中删除 Procfile (git rm),创建一个新的正确 Procfile,然后提交并再次推送。
  3. 在#1 和#2 之后仍然无法工作

    • 转到 Heroku 项目中的 Overview 选项卡,选中 Dyno formation。如果您看到一条消息,指出没有记录任何进程类型。一个简单的场景是您可能忘记登录您的 Heroku 帐户。
      • 通过在您的终端输入 heroku ps:scale web=1 --app <app-name-registered-in-Heroku> 来检查。如果您看到 Invalid credentials provided. heroku: Press any key to open up the browser to login or q to exit: Command failed: heroku login

我个人的结论是,'忘记登录并运行 git push heroku master' 是 H14 错误的根本原因。当然还有其他问题会间接导致此错误,但我希望我的回答能缩小您对答案的搜索范围。