29

Flask アプリを Heroku にデプロイしようとしていますが、コードをプッシュするとエラーが発生します

2013-06-23T11:23:59.264600+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 

ポートを 5000 から 33507 に変更してみましたが、うまくいきませんでした。私のProfileは次のようになります:

web: python main.py 

main.pyサーバーを起動するメインの Flask ファイルです。

ありがとう。

4

4 に答える 4

51

Heroku でホストされている私の Flask アプリでは、次のコードを使用してサーバーを起動します。

if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port)

ローカルで開発する場合、これはポート 5000 を使用し、本番環境では Heroku がPORT環境変数を設定します。

(補足: デフォルトでは、Flask は自分のコンピューターからのみアクセスでき、ネットワーク内の他のコンピューターからはアクセスできません (クイックスタートを参照してください。設定host='0.0.0.0'により、ネットワークから Flask を使用できるようになります)

于 2013-06-24T13:08:59.973 に答える
4

スクリプトは特定のポートにバインドできません。環境変数main.pyに設定されたポート番号にバインドする必要があります。$PORTHeroku は、アプリケーションを呼び出す前に、必要なポートをその変数に設定します。

表示されるエラーは、Heroku が期待するものではないポートにバインドしていることを示しています。

于 2013-06-23T17:24:24.443 に答える