Ich habe eine Flask-App, die ich über Gunicorn zu bedienen versuche.Gunicorn konnte die Flask-Anwendung nicht laden
Ich benutze virtualenv und python3. Wenn ich meine Venv cd meiner app Basis dir aktivieren dann laufen:
gunicorn mysite:app
ich:
Starting gunicorn
Listening at http://127.0.0.1:8000
DEBUG:mysite.settings:>>Config()
...
Failed to find application: 'mysite'
Worker exiting
Shutting down: master
Reason: App failed to load
Suchen Sie in/etc/nginx/sites-available Ich habe nur die Datei 'default'. In Sites-aktiviert habe ich keine Datei.
In meiner nginx.conf Datei ich habe:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
App Struktur:
mysite #this is where I cd to and run gunicorn mysite:app
--manage.py
--/mysite
----settings.py
----__init__.py
in manage.py
für mysite Ich habe folgende:
logger.debug("manage.py entry point")
app = create_app(app_name)
manager = Manager(app)
if __name__ == "__main__":
manager.run()
In __init__.py
Datei:
def create_app(object_name):
app = Flask(__name__)
#more setup here
return app
In meinem settings.py
im App-Verzeichnis
class Config(object):
logger.debug(">>Config()") #this logs OK so gunicorn is at least starting in correct directory
Aus dem Innern des virtualenv, wenn ich laufe
print(sys.path)
ich einen Weg zu Python und Website-Pakete für diese virtualenv finden.
Von dem, was ich gelesen habe, zu beginnen gunicorn es ist nur eine Frage der Installation und gunicorn mysite läuft: app
Lauf gunicorn aus dem übergeordneten Verzeichnis von mysite bekomme ich die gleiche konnte Anwendung finden: ‚mysite‘ App konnte Fehler nicht laden, aber bekomme nicht die DEBUG ... Config() geloggt (da wir uns eindeutig im falschen Verzeichnis befinden). Laufendes gunicorn von mysite/mysite (eindeutig falsch) bekomme ich und Exception in worker process emeror, ImportError: Kein Modul namens 'mysite'.
Irgendwelche Hinweise, wie ich Gunicorn laufen lassen kann?