J'essaie de suivre la documentation du flacon sur ma machine Windows au lien suivant: http://flask.pocoo.org/docs/0.11/quickstart/#debug-mode
Tout d'abord, j'ai écrit le code ci-dessous dans un script python:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __== "__main__":
app.run(debug=True)
Je l'ai enregistré dans un fichier appelé run.py
Puis écrit cette commande dans la fenêtre de commande:
set FLASK_APP = run.py
flask run
En exécutant ceci, j'obtiens l'erreur suivante:
"Error: Could not locate flask application. You did not provide the FLASK_APP environment variable"
Je m'attendais à obtenir ceci à la place:
Running on http://127.0.0.1:5000/
Quelqu'un peut-il me dire comment résoudre ce problème?
J'avais le même problème lorsque j'utilisais PowerShell et ce correctif fonctionnait pour moi:
au lieu d’utiliser set FLASK_APP = run.py
, essayez $env:FLASK_APP = "run.py"
Si vous utilisez PowerShell cela ne fonctionne pas, je ne sais pas pourquoi Veuillez utiliser cmd.exe
Puisque j'utilise VScode Editor, il fournit powershell sous forme de terminal (ctrl+
) par défaut, de sorte que je tentais d'exécuter l'application flask sur le PowerShell il me donnait la même réponse que vous obtenez
1) ouvrez cmd.exe (ou si vous êtes VSCode utilisateur comme moi, écrivez simplement cmd
sur ce terminal)
2) set FLASK_APP=hello.py
(sans espaces, uniquement pour la première exécution, puis rappelez-vous jusqu'au redémarrage de cmd)
3) flask run
(ou seulement le flacon fonctionnera également)
note: ceci est seulement pour l'utilisateur Windows
export FLASK_APP=run.py
flask run --Host=0.0.0.0
puis peut fonctionner normalement, sortie quelque chose comme:
* 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
Avez-vous exploité votre terminal en tant qu'administrateur? J'ai eu le même problème, et l'exécution de cmd/PowerShell en tant qu'administrateur a corrigé le problème.
Edit: j'ai parlé trop tôt. Courir en tant qu'administrateur n'a rien fait.
La vraie réponse (à mon problème, du moins) est une combinaison de certaines des autres réponses.
set FLASK_APP = myApp.py
, utilisez setx FLASK_APP myApp.py
Je me demande pourquoi cela manque à la réponse.
Voici une solution simple:
ajouter app.run (port = 5000)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
app.run(port=5000)
puis dans le même répertoire, exécutez la commande
python run.app
Il suffit de laisser l’espace autour de '='!
Après une demi-heure de recherche d’une solution, j’ai enfin compris ce que signifie «Vous n’avez pas fourni la variable d’environnement FLASK_APP». Parce que ce que j'ai défini est la variable 'FLASK_APP' (avec espace).
Succès avec setx FLASK_APP test.py
. Remarque: s'il n'est pas exécuté, fermez la ligne de commande et démarrez-en une autre.
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 -
Vous devez définir la variable FLASK_APP en dehors de l'environnement virtuel. Je suppose que la raison pour laquelle cela a fonctionné après le redémarrage de @Fang dans la fenêtre de commande est que cette action a automatiquement quitté l'environnement virtuel.
Ainsi, si vous êtes dans l'environnement virtuel (indiqué par un (venv)
au début de la ligne dans la fenêtre de commande), tapez les commandes suivantes:
deactivate
set FLASK_APP=run.py
venv\scripts\activate
flask run
J'ai résolu le même problème en fermant la fenêtre de commande et en la redémarrant.
Votre code est correct. Essayez de définir la variable de ligne de commande comme ceci:
setx FLASK_APP run.py
Et puis exécutez-le: flask run
.
eu un problème similaire. a été résolu en utilisant les éléments suivants: flask run --no-reload
appris cela grâce à la documentation de la fiole http://flask.pocoo.org/docs/0.12/server/
J'avais le même problème en exécutant le premier monde de hello for flask.
Idéalement, il ne devrait pas y avoir d'espace entre Utilisez donc Set FLASK_APP = run.py