Gunicorn failed to load Flasche Anwendung
Habe ich ein Fläschchen app, die ich versuche zu dienen, über Gunicorn.
Ich bin mit virtualenv und Python ist3. Wenn ich aktiviere meine venv cd zu mein base app dir dann ausführen:
gunicorn mysite:app
Bekomme 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
Suche in /etc/nginx/sites-available habe ich nur die Datei 'default'. In sites-enabled habe ich keine Datei.
In meiner nginx.conf-Datei habe ich:
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 habe ich 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 Verzeichnis app
class Config(object):
logger.debug(">>Config()") #this logs OK so gunicorn is at least starting in correct directory
Vom inneren des virtualenv wenn ich
print(sys.path)
Finde ich einen Pfad zu python site-packages für das virtualenv.
Was ich zu Lesen beginnen gunicorn es ist nur eine Frage der Installation und Ausführung gunicorn mysite:app
Läuft gunicorn aus dem übergeordneten Verzeichnis mysite bekomme ich den gleichen Fehler beim finden Anwendung: 'mysite', App konnte nicht geladen werden Fehler, aber nicht die DEBUG-Config...() angemeldet (da sind wir eindeutig im falschen Verzeichnis starten). Läuft gunicorn von mysite/mysite (eindeutig falsch) bekomme ich und Ausnahme im Arbeitsprozess ereor, ImportError: No module named 'mysite'.
Irgendwelche Hinweise, wie ich bekommen kann gunicorn laufen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie zeigen sind gunicorn bei
mysite:app
entsprichtfrom mysite import app
. Es gibt jedoch keineapp
Objekt in der oberen (__init__.py
) Niveau import vonmysite
. Sagen gunicorn aufrufen, die Fabrik.Können Sie Argumente übergeben, um den Anruf als gut.
Intern, dies ist äquivalent zu:
Alternativ können Sie eine separate Datei, dass macht das setup. In deinem Fall hast du bereits initialisiert eine
app
immanage.py
.