【问题标题】:Heroku - No web process runningHeroku - 没有运行 Web 进程
【发布时间】:2017-01-08 08:07:33
【问题描述】:

我在 Python 中使用 tweepy 制作了一个 twitter 机器人,并尝试使用 Heroku 进行部署。 Bot 只是在特定时间间隔后发布推文。部署后,Python 程序无法运行,Heroku 日志显示以下错误:

at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=fathomless-island-25537.herokuapp.com request_id=0aa76d12-31e6-4940-85ec-a8476af4f82f fwd="182.64.210.145" dyno= connect= service= status=503 bytes=

在查看了一些必须部署 django 应用程序的类似问题后,我尝试了:

heroku ps:scale web=1

得到:

Scaling dynos... !
 !  Couldn't find that formation.

这是否意味着程序无法建立 web 进程或是否有其他与 dynos 相关的东西?或者如果我必须在我的程序中包含一些与测功机相关的代码?我不知道整个过程的哪个部分有问题。如果内容太简单,请见谅。

【问题讨论】:

  • 你能发布你的 Procfile 吗?
  • @MichałMłoźniak ; Procfile 说worker: python bot.py
  • 所以你应该执行heroku ps:scale worker=1
  • @MichałMłoźniak 当我从应用程序的文件夹中执行 heroku ps:scale worker=1 时,我得到Scaling dynos... done, now running worker at 1:Free

标签: python python-3.x heroku tweepy


【解决方案1】:

这个问题有点老了,但无论如何......

在您可以扩展测功机之前,您需要有一个 Procfile,您可以在其中定义流程启动时应该发生的情况。在您的情况下,该过程应称为web。我们稍后会介绍文件的内容。

但首先:对我来说,最好使用 gunicorn 在 heroku 上运行 python 应用程序,所以首先你应该安装 gunicorn,运行 pip freeze > requirements.txt 并将其推送到 heroku(好吧,等到你有 Procfile )。更多内容见:python with gunicorn on heroku

Procfile 只需要一行web: gunicorn <filename>:<main method name>。在您的情况下,这将是(假设您的主要方法称为“应用程序”)web: gunicorn bot:app

现在将所有内容推送到 heroku,然后您可以使用您使用的命令扩展您的测功机 heroku ps:scale web=1

【讨论】:

  • 我将我的 procfile 从“web: gunicorn website.wsgi”转换为“web: gunicorn website.wsgi:app”,但仍然遇到同样的错误。引号包括在内。有什么建议吗?
【解决方案2】:

在我修改我的 Procfile 之前,我无法加载我的应用程序

从说

web: gunicorn app:app

web gunicorn app:app

web 之后删除: 使它对我有用。

【讨论】:

    【解决方案3】:

    当您尝试heroku ps:scale web=1 并徒劳无功时,请检查您的Procfile 是否具有正确的名称和内容。我有一个问题。在修复名称和内容并将更新推送到 heroku 后,应用程序自行启动。之后heroku open 按预期工作。

    【讨论】:

      猜你喜欢
      • 2021-07-17
      • 2013-09-04
      • 2021-03-31
      • 2012-04-15
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      相关资源
      最近更新 更多