2015-07-01 12 views
18

sto cercando di caricare la mia domanda Flask di AWS tuttavia ricevo un errore farlo:vostro WSGIPath fa riferimento a un file che non esiste

vostro WSGIPath fa riferimento a un file che non esiste.

Dopo aver eseguito un po 'di ricerca online ho scoperto che nella cartella .ebextensions dovrei specificare il percorso. Non c'era una cartella .ebextensions così ho creato uno e ha aggiunto il seguente codice in un file denominato settings.config:

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

la WSGIPath è il percorso corretto del file application.py, quindi non sono sicuro di quello che solleva questo errore. Sto cambiando il WSGIPath giusto, c'è un modo migliore o c'è un problema con qualcos'altro che fa sì che ciò accada? Grazie.

risposta

22

C'è un sacco di problemi di configurazione che possono sorgere con Flask distribuito su AWS. Mi sono imbattuto in un problema simile a te, quindi posso almeno mostrarti cosa ho fatto per risolvere l'errore WSGI.

In primo luogo, a quanto pare si può fare questo senza la cartella .ebextensions (vedere questo post here .e guardare la risposta di davetw12. Tuttavia, essere consapevoli del fatto che mentre questo funziona, non sono del tutto sicuro che la conclusione di davetw12 su .ebextensions è corretto, basato su alcuni dei commenti seguenti). Invece, (nel Terminale), ho navigato nel mio progetto allo stesso livello della mia directory .elasticbeanstalk e ho usato il comando eb config. Questo aprirà un elenco di opzioni che è possibile impostare per configurare l'applicazione di beanstalk. Scendi le opzioni fino a trovare il percorso WSGI. Ho notato che hai il tuo impostato su project/application.py, tuttavia, questo non dovrebbe includere il riferimento alla cartella, solo application.py. Ecco come appare sul mio Mac nel terminale (il percorso WSGI è vicino al fondo).

enter image description here

Si noti che una volta che si ottiene quel set, EB probabilmente ridistribuire. Va bene. Lasciarlo - Lascialo.

Una volta ottenuto questo set, vai nel tuo file application.py e assicurati di chiamare l'app application. Ad esempio, il mio aspetto:

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') 

Questo ha portato via l'errore percorso WSGI - anche se ho ancora dovuto risolvere alcuni altri problemi che seguono questo :-) Ma questo è un diverso insieme di domande.

+0

Ho un problema simile, e usando 'eb config' ho scoperto che WSGIPath non è nei miei dati di configurazione - in effetti non ottengo nulla per aws: elasticbeanstalk: container: python. L'ho impostato in un file .config, ma sembra essere stato sovrascritto dalla configurazione salvata nella Dashboard - che visualizza 'WSGIPath: application.py' nella pagina principale, ma non mi consente di modificarlo da nessuna parte. Sembra che dovrò solo creare un'applicazione.py! – Kylotan

+0

Abbiamo avuto un problema con psycopg2 non installato. l'aggiunta di quelle linee ai nostri .ebextensions/01-app.config di file riparato: pacchetti: yum: postgresql93-devel: [] –

+0

sono d'accordo con la risposta di davetw12 che EBCONFIG non è più rilevante - vedere il mio commento lì. voi ragazzi diffondete inavvertitamente informazioni errate – HaveAGuess

Problemi correlati