5

Mein Python Web-Anwendung ist appWie konfiguriere ich den Namen meiner WSGI-Anwendung in AWS Elastic Beanstalk?

# example.py 
import flask 

app = flask.Flask(__name__.split('.')[0]) 

genannt und wenn ich es auf AWS-EB

# run.py (set correctly with WSGIPath) 
from example import app 

if __name__ == "__main__": 
    app.run() 

ich

mod_wsgi (pid = 22473) mit zu starten versuchen: Das Ziel-WSGI-Skript '/opt/python/current/app/run.py' enthält keine WSGI-Anwendungsanwendung.

Wie kann ich AWS mitteilen, dass meine Anwendungsinstanz app heißt?

+0

Ja, gute Referenz (aber einige davon funktionierte nicht für mich; siehe meine verwandten Fragen). – orome

+0

Wenn die grundlegende Antwort für Sie nicht funktioniert, sollten Sie erklären, was Sie versucht haben und warum es in Ihrer Frage nicht funktioniert. Auf diese Weise werden zukünftige Leser, die das gleiche Problem hatten, die Antwort vollständig verstehen. –

Antwort

10

mod_wsgi erwartet Variable namens application. Versuchen Sie so etwas wie dieses

from example import app as application 

Hinweis zu tun: nicht application.run() tun. Es wird nicht benötigt.

+0

Wow, alles, was von AWS benötigt wird, ist eine Instanz namens 'application'; der gesamte Inhalt von 'run.py' könnte dieser einzelne Import sein, richtig? – orome

+0

In der Tat ist es korrekt zu sagen, dass für AWS (im Gegensatz zu sagen, Heroku) gibt es überhaupt kein * run * -Skript, nur eine Datei, in der eine Instanz namens "Anwendung" definiert ist. – orome

+0

Normalerweise für Entwicklungszwecke enthält Modul mit Anwendung app.run() in If __name__ == '__main__' Abschnitt am Ende der Datei. Eine gute Vorgehensweise besteht darin, eine .wsgi-Datei zu erstellen, die die Anwendung importiert. –

Verwandte Themen