Reputation: 263
I have changed my application running with flask and python2.7 from a standalone solution to flask with apache and mod_wsgi.
My Flask app (app.py) includes some classes which are in the directory below my app dir (../).
Here is my 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
Before my configuration to mod_wsgi my main call in the app.py looks like that:
# 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)
I was perfectly able to load my classes in the directory below. After running the app with mod_wsgi I get the following error: global name \'Main\' is not defined
So how do I have to change my app that this here would work:
@app.route("/") def test(): main = Main("test") return main.responseMessage()
Upvotes: 0
Views: 1191
Reputation: 263
No main function call with mod_wsgi was the right answer. I do not implemented my required modules in the wsgi file, but on top of the flask app.
Upvotes: 0