我在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.
这是否意味着该程序未能建立网络流程或是否存在与dynos相关的其他内容?或者,如果我必须在我的程序中包含一些与dynos相关的代码?我不知道整个过程的哪个部分有问题。抱歉,如果它太基本了。
答案 0 :(得分:3)
这个问题有点老了,但无论如何......
在缩放dynos之前,您需要有一个Procfile,您可以在其中定义启动过程时应该发生的事情。在您的情况下,应该将该过程称为web
。我们马上就会看到文件的内容。
但首先:对我而言,最好使用gunicorn在heroku上运行python应用程序,所以首先应该安装gunicorn,运行pip freeze > requirements.txt
并将其推送到heroku(好吧,等到你拥有Procfile )。有关详情,请参阅:python with gunicorn on heroku
Procfile只需要一行web: gunicorn <filename>:<main method name>
。在您的情况下,这将是(假设您的主要方法被称为&#39; app&#39;)web: gunicorn bot:app
。
现在将所有内容推送到heroku,然后您可以使用您使用的命令缩放您的dyno heroku ps:scale web=1
答案 1 :(得分:0)
当您尝试heroku ps:scale web=1
时,所有其他事情都徒劳无功时,请检查您的Procfile
是否具有正确的名称和内容。我有一个问题。固定名称和内容并将更新推送到heroku之后,该应用程序将自行启动。之后,heroku open
将按预期工作。
答案 2 :(得分:0)
在修改我的Procfile之前,我一直无法加载我的应用
从说起
web: gunicorn app:app
到
web gunicorn app:app
在:
之后删除web
使其对我有用。