2015-07-01 5 views
18

existiert Ich versuche, meine Flask Anwendung AWS hochladen jedoch erhalte ich einen Fehler auf, so zu tun:Ihre WSGIPath auf eine Datei verweist, die nicht

Ihre WSGIPath verweist auf eine Datei, die nicht existiert.

Nachdem ich online gegraben habe, fand ich, dass ich im Ordner .exextensions den Pfad angeben sollte. Es war keine .ebextensions Ordner, so habe ich ein und fügte den folgenden Code zu einer benannten settings.config Datei:

option_settings: 
    "aws:elasticbeanstalk:container:python": 
    WSGIPath: project/application.py 

die WSGIPath ist der richtige Pfad zur Datei application.py so bin ich nicht sicher, was wirft diesen Fehler auf. Ändere ich den WSGIPath richtig, gibt es einen besseren Weg oder gibt es ein Problem mit etwas anderem, das dies verursacht? Vielen Dank.

Antwort

22

Es gibt viele Konfigurationsprobleme, die bei Flask auftreten können, die auf AWS bereitgestellt werden. Ich hatte ein ähnliches Problem wie Sie, sodass ich Ihnen zumindest zeigen kann, was ich getan habe, um den WSGI-Fehler zu beheben.

Zunächst können Sie dies ohne den Ordner .exextensions tun (siehe diesen Beitrag here. Und schauen Sie sich die Antwort von davetw12 an. Beachten Sie jedoch, dass, während dies funktioniert, ich bin mir nicht ganz sicher, dass davetw12s Schlussfolgerung über .exextensions ist richtig, basierend auf einigen der folgenden Kommentare). Stattdessen (im Terminal) navigierte ich auf der gleichen Ebene wie mein .elasticbeanstalk-Verzeichnis zu meinem Projekt und verwendete den Befehl eb config. Dadurch wird eine Liste mit Optionen geöffnet, die Sie zum Konfigurieren Ihrer Bean-Talk-Anwendung festlegen können. Gehen Sie die Optionen durch, bis Sie den WSGI-Pfad gefunden haben. Ich bemerke, dass Sie Ihre auf project/application.py gesetzt haben, jedoch sollte dies nicht die Ordnerreferenz enthalten, nur application.py. So sieht es auf meinem Mac im Terminal aus (WSGI-Pfad befindet sich ganz unten).

enter image description here

Beachten Sie, dass, wenn Sie diesen Satz bekommen, wird EB wahrscheinlich erneut bereitstellen. Das ist gut. Lass es.

Sobald Sie diesen Satz erhalten, gehen Sie in Ihre Datei application.py und stellen Sie sicher, dass Sie Ihre App application anrufen. Zum Beispiel sieht Mine wie folgt aus:

from flask import Flask 
from flask import render_template 
application = Flask(__name__) 

@application.route('/') 
@application.route('/index') 
def index(): 
    return render_template('index.html', 
          title='Home') 

Dieser nahm den WSGI Wegfehlers weg - obwohl ich noch einige andere Fragen im Anschluss an diese :-) zu beheben hatte Aber das ist eine andere Reihe von Fragen.

+0

Ich habe ein ähnliches Problem, und mit 'eb config 'entdeckte ich, dass WSGIPath nicht in meinen Konfigurationsdaten ist - in der Tat bekomme ich nichts für aws: elasticbeanstalk: container: python. Ich habe es in einer .config-Datei eingerichtet, aber es scheint, als würde es von der gespeicherten Konfiguration im Dashboard überschrieben - das zeigt "WSGIPath: application.py" auf der Startseite an, erlaubt mir aber nicht, es irgendwo zu bearbeiten. Sieht so aus, als müsste ich nur eine application.py erstellen! – Kylotan

+0

Wir hatten ein Problem mit psycopg2 nicht installiert. diese Zeilen in unserem .ebextensions Hinzufügen/01-Datei app.config es fest: Pakete: yum: postgresql93-devel: [] –

+0

ich mit davetw12 Antwort nicht einverstanden, dass ebconfig nicht mehr relevant ist - siehe meinen Kommentar gibt. Ihr verbringt unbeabsichtigt Fehlinformationen. – HaveAGuess

Verwandte Themen