【问题标题】:How can I push my Flask_socketio app correctly to Heroku?如何将我的 Flask_socketio 应用正确推送到 Heroku?
【发布时间】:2021-04-03 22:10:19
【问题描述】:

我一直在尝试将我的 Flask_socketio 应用程序推送到 Heroku,但 Heroku 无法通过 Procfile 找到我的应用程序,可能是因为我的包结构。如何重组我的目录?或者,我应该更改我的 Procfile。提前致谢。

我的目录结构:

|App
| |-templates
| |-main
| |-__init__.py
|app.py
|requirements.txt
|Procfile

App.py:

from app import create_app, socketio

app = create_app(debug=True)

if __name__ == "__main__":
    socketio.run(app)

app/init.py:

from flask import Flask
from flask_socketio import SocketIO

socketio = SocketIO()

def create_app(debug=False):
    "Create an application."

    app = Flask(__name__)
    app.debug = debug
    app.config['SECRET_KEY'] = 'MRHBLR'

    from .main import main 
    app.register_blueprint(main)

    socketio.init_app(app)
    return app

过程文件:

web: gunicorn --worker-class eventlet -w 1 app:app

Heroku 应用的日志:

2021-04-03T19:34:00.216344+00:00 app[web.1]: Failed to find attribute 'app' in 'app'.
2021-04-03T19:34:00.217370+00:00 app[web.1]: [2021-04-03 19:34:00 +0000] [10] [INFO] Worker exiting (pid: 10)
2021-04-03T19:34:00.248331+00:00 app[web.1]: [2021-04-03 19:34:00 +0000] [4] [WARNING] Worker with pid 10 was terminated due to signal 15
2021-04-03T19:34:00.345570+00:00 app[web.1]: [2021-04-03 19:34:00 +0000] [4] [INFO] Shutting down: Master
2021-04-03T19:34:00.345660+00:00 app[web.1]: [2021-04-03 19:34:00 +0000] [4] [INFO] Reason: App failed to load.

【问题讨论】:

    标签: python flask heroku


    【解决方案1】:

    您的顶层似乎有两个名为app 的东西,对吧?你有app.py 文件和app 包。那是行不通的,请尝试重命名其中一个。例如,将 app.py 更改为 myapp.py,然后在 Gunicorn 命令行中传递 myapp:app

    【讨论】:

      猜你喜欢
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多