Pythonでtweepyを使用してTwitterボットを作成し、Herokuを使用してそれをデプロイしてみました。ボットは特定の間隔の後にツイートするだけです。それをデプロイした後、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プロセスの確立に失敗したことを意味しますか、それともdynoに関連する他の何かがありますか?または、dynoに関連するコードをプログラムに含める必要がある場合はどうすればよいですか?このプロセス全体のどの部分に問題があるのかわかりません。基本的すぎるとお詫びします。
質問は少し古いですが、とにかく...
Dynoをスケーリングする前に、Procfileが必要です。Procfileでは、プロセスの開始時に何が起こるかを定義します。あなたの場合、プロセスはweb
と呼ばれるべきです。すぐにファイルのコンテンツが表示されます。
しかし、最初に:herokuでpythonアプリを実行するには、gunicornを使用するのが最善のようです。最初に、gunicornをインストールし、pip freeze > requirements.txt
を実行して、herokuにプッシュします(まあ、しばらくお待ちください)これは、Procfileが作成されるまで続きます。詳細については、 herokuでのgunicornを使用したPython を参照してください。
Procfileはweb: gunicorn <filename>:<main method name>
を1行だけ必要とします。あなたの場合、これは(メインメソッドが 'app'と呼ばれていると仮定すると)web: gunicorn bot:app
になります。
すべてをherokuにプッシュすると、使用したコマンドheroku ps:scale web=1
でdynoをスケーリングできます
Procfileを変更するまで、アプリを読み込めませんでした
言ってから
web: gunicorn app:app
に
web gunicorn app:app
web
の後に:
を削除すると、うまくいきました。
あなたがしようとするとheroku ps:scale web=1
とその他すべてが無駄になっている場合は、正しい名前と内容のProcfile
があることを確認してください。私はそれに問題がありました。名前と内容を修正し、更新をherokuにプッシュした後、アプリは自動的に起動しました。その後 heroku open
は期待どおりに動作します。