私は、フラスコとpython2.7で実行しているアプリケーションをスタンドアロンのソリューションからapacheとmod_wsgiのフラスコに変更しました。Flask with mod_wsgi - 私のモジュールを呼び出せません
My Flaskアプリ(app.py)には、私のappディレクトリ(../)の下にあるディレクトリにいくつかのクラスが含まれています。ここで
は私app.wsgiです:
#!/usr/bin/python import sys import logging logging.basicConfig(stream=sys.stderr) sys.stdout = sys.stderr project_home = '/opt/appdir/Application/myapp' project_web = '/opt/appdir/Application/myapp/web' if project_home not in sys.path: sys.path = [project_home] + sys.path if project_web not in sys.path: sys.path = [project_web] + sys.path from app import app application = app
私の設定前にapp.pyで私の主な通話をmod_wsgiのためにそのようになっています。私は私のクラスをロードするために完璧にできた
# Main if __name__ == '__main__' : from os import sys, path sys.path.append(path.dirname(path.dirname(path.abspath(__file__)))) from logger import Logger from main import Main from configReader import ConfigReader print "Calling flask" from threadhandler import ThreadHandler ca = ConfigReader() app.run(host="0.0.0.0", threaded=True)
以下のディレクトリにあります。 のmod_wsgiでアプリを実行した後、私は次のエラーを取得:
@app.route("/") def test(): main = Main("test") return main.responseMessage()
: グローバル名\「メイン\」は
が定義されていないので、どのように私はここにこれが働くだろうと私のアプリを変更する必要がありますご回答いただきありがとうございます。
敬具 Joern
あなたは '輸入アプリのWSGIをMain'inしようとしたことがありますか? – saitam
あなたのスクリプトがメインスクリプトとして実行されないので、この '' __main__''チェックの下ではmod_wsgiの下では何も実行されません。 '' sys.path''を設定するものは、 '' app.wsgi''またはmod_wsgiのためのApache設定の中で行わなければなりません。モジュールのインポートなど、モジュールを必要とするコードファイルの先頭で常に実行する必要があります。 –