簡體   English   中英

Heroku上的gunicorn + Flask,模塊名稱和應用名稱不正確

[英]gunicorn + Flask on Heroku, module name and app name are incorrect

我正在嘗試在Heroku上運行Flask應用程序(使用Nginx + Gunicorn)。 我的Heroku procfile是:

web: bin/start-nginx gunicorn -c config/gunicorn.py myflaskmodule:app

我不斷從gunicorn收到錯誤消息,例如:

gunicorn.errors.HaltServer: <HaltServer 'App failed to load.' 4>

或者,根據我嘗試過的應用名稱,gunicorn錯誤可能是:

Application object must be callable.

Flask應用程序在名為myflaskmodule的目錄中設置,該目錄包含static目錄, templates目錄, auth.pydb.pybtac.py__init__.py

btac.py ,藍圖定義為:

 bp = Blueprint('btac', __name__, url_prefix='/btac')

然后在btac.py中定義幾個flask函數,例如:

@bp.route('/', methods=['GET'])
def index():
  # Do some things...
  return render_template()

__init.py__我有一個功能:

def create_app(test_config=None):
  app = Flask(__name__, instance_relative_config=True)

  # lots of other unrelated content here...

  db.init_app(app)
  app.register_blueprint(auth.bp)
  app.register_blueprint(btac.bp)
  return app

在終端(或bash腳本)中,執行export FLASK_ENV=developmentexport FLASK_APP=myflaskmodule ,Flask應用將在本地運行,並帶有flask run

如何在Heroku procfile中定義最后一個參數? 它應該是module_name:app_name 我已經嘗試過myflaskmodule:appmyflaskmodule:myflaskmodulemyflaskmodule:bpmyflaskmodule:btac

我相當有信心參數的第一部分應該是myflaskmodule (Flask主目錄的名稱),但是我似乎無法正確定義Flask應用程序的名稱。

燒瓶== 1.0.2,古尼康角== 19.9.0

如果在您的Procfile中放置了web: gunicorn "myflaskmodule:create_app()"應該可以使用。 在上面的代碼中,您沒有與myflaskmodule:app一起使用的app變量,但是您確實有一個返回Flask應用程序的函數,因此您可以使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM