2016-06-15 7 views
7

Sto cercando di seguire la documentazione pallone sulla mia macchina Windows dato al seguente link: http://flask.pocoo.org/docs/0.11/quickstart/#debug-modeerrore durante l'esecuzione dell'applicazione Flask Minimal

In primo luogo ho scritto il codice qui sotto in uno script python:

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

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

ho salvato questo in un file chiamato run.py

Poi ha scritto questo comando nella finestra di comando:

set FLASK_APP = run.py 
flask run 

Al momento l'esecuzione di questo, sto ottenendo il seguente errore:

"Error: Could not locate flask application. You did not provide the FLASK_APP environment variable"

mi aspettavo di ottenere questo, invece:

Running on http://127.0.0.1:5000/ 

qualcuno può dirmi come risolvere questo problema?

+0

Questo è l'esatto esempio fornito nella documentazione di Flask. Se non funziona, probabilmente è un bug in Flask stesso. Contatta l'autore. –

+0

@RemyLebeau Sono riuscito a correggere l'errore scrivendo in cmd per eseguire il file anziché . In questo modo, ora ricevo un altro errore che dice "Errore durante la ricerca delle specifiche per 'run.py' << class AttributeError '>: il modulo' run 'non ha attributo' -path - '>". Puoi offrire qualche aiuto? – Batool

+0

vedi [L'installazione dei sottomoduli Python3 non aggiorna i percorsi quando viene eseguito con -m switch] (http://stackoverflow.com/questions/27169750/), e nota il commento su "* l'opzione -m prende un identificatore python, non un nome del file*". –

risposta

18

Ho affrontato lo stesso problema durante l'utilizzo di PowerShell e che difficoltà ha lavorato per me:
invece di utilizzare set FLASK_APP = run.py, provare $env:FLASK_APP = "run.py"

+1

Questa soluzione funziona per il mio caso quando si utilizza PowerShell. Grazie! – Lavande

+1

Grazie per questa soluzione. Lo stesso esatto problema con esperienza (Powershell utilizzato al posto di cmd) come antipasto di domande e questa soluzione funziona perfettamente. – addicted

+0

Qualcuno potrebbe dirmi come faccio a salvarlo, quindi non devo inserirlo ogni volta che voglio eseguire l'applicazione Flask quando spengo il mio computer? –

0

Il tuo codice è corretto. Prova a impostare la variabile della riga di comando in questo modo:

setx FLASK_APP run.py 

e quindi eseguirlo: flask run.

0

Ho risolto lo stesso problema chiudendo la finestra di comando e riavviandolo.

1

È necessario impostare la variabile FLASK_APP all'esterno dell'ambiente virtuale. Suppongo che il motivo per cui ha funzionato dopo che @Fang ha riavviato la finestra di comando è perché quell'azione è uscita automaticamente dall'ambiente virtuale.

Quindi, se siete in un ambiente virtuale (indicata da una (venv) all'inizio della linea sulla finestra di comando), quindi digitare i seguenti comandi:

deactivate 

set FLASK_APP=run.py 

venv\scripts\activate 

flask run 
2

sei scappato il terminale come amministratore? Ho avuto lo stesso problema, e l'esecuzione di cmd/PowerShell come amministratore ha risolto per me.

Modifica: ho parlato troppo presto. In esecuzione come admin non ha fatto nulla.

La vera risposta (almeno al mio problema) è una combinazione di alcune delle altre risposte.

  1. Invece di utilizzare set FLASK_APP = myApp.py, utilizzare setx FLASK_APP myApp.py
  2. riavvio del terminale, e FLASK_APP avrà il nuovo valore
4
  1. export FLASK_APP=run.py
  2. flask run --host=0.0.0.0

quindi può funzionare normalmente , emettere qualcosa come:

* Serving Flask app "hello" 
* Forcing debug mode on 
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 
* Restarting with stat 
* Debugger is active! 
* Debugger pin code: 353-795-063 
1

successo con setx FLASK_APP test.py. Nota: se non si esegue, chiudere la riga di comando e avviare l'altra.

D:\projects\flask-oauthlibpy2>.evn\Scripts\activate 

(.evn) D:\projects\flask-oauthlibpy2>setx FLASK_APP test.py 

SUCCESS: Specified value was saved. 

(.evn) D:\projects\flask-oauthlibpy2>flask run 
* Serving Flask app "flask-oauthlibpy2.test" 
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 
127.0.0.1 - - [24/May/2017 14:35:06] "GET/HTTP/1.1" 200 - 
0

Basta far cadere lo spazio intorno a '='!

Dopo mezz'ora alla ricerca di una soluzione, ho finalmente capito cosa significa "Non hai fornito la variabile di ambiente FLASK_APP". Perché ciò che imposto è variabile "FLASK_APP" (con spazio).

3

Se si utilizza PowerShell esso non lavori non so perché si prega di utilizzare cmd.exe Da quando uso L'editor VScode fornisce powershell come terminale (ctrl+) per impostazione predefinita, quindi stavo cercando di eseguire l'app di flask sul PowerShell e mi dava la stessa risposta di

1) apri cmd.exe (o se sei Utente VSCode come me semplicemente scrivere cmd su quel terminale)

2) set FLASK_APP=hello.py (senza spazi, solo per prima esecuzione allora ricordare fino al riavvio del cmd)

3) flask run (o solo volontà pallone anche funzionare)

nota: questo è solo per l'utente Windows

-1

Avevo lo stesso problema durante l'esecuzione del primo mondo Hello per pallone.

Idealmente non dovrebbe esserci alcun spazio tra modo da utilizzare set FLASK_APP = run.py

-1

ero a questo stesso problema eseguire i comandi come indicato nella Flask avvio rapido.utilizzando PowerShell di Windows 10

projects>set export FLASK_APP=hello.py 
projects>flask run 
* Running on http://127.0.0.1:5000/ 

avevo bisogno di digitare python <filename.py> pur essendo nella directory che contiene il file con dalla boccetta di importazione Flask app = Flask (nome)

@app.route('/') 
def hello_world(): 
    return 'Hello, World! 

dopo che si riceverà un messaggio con un indirizzo IP

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 

copi l'indirizzo IP nel tuo browser e a quel punto dovresti vedere la tua dichiarazione ciao mondo allora.

Problemi correlati