web-dev-qa-db-ja.com

Heroku-Webプロセスが実行されていない

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に関連するコードをプログラムに含める必要がある場合はどうすればよいですか?このプロセス全体のどの部分に問題があるのか​​わかりません。基本的すぎるとお詫びします。

14
arjun gulyani

質問は少し古いですが、とにかく...

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をスケーリングできます

5
Stefan

Procfileを変更するまで、アプリを読み込めませんでした

言ってから

web: gunicorn app:app

web gunicorn app:app

webの後に:を削除すると、うまくいきました。

5
Scott Eifel

あなたがしようとするとheroku ps:scale web=1とその他すべてが無駄になっている場合は、正しい名前と内容のProcfileがあることを確認してください。私はそれに問題がありました。名前と内容を修正し、更新をherokuにプッシュした後、アプリは自動的に起動しました。その後 heroku openは期待どおりに動作します。

1
biocyberman