web-dev-qa-db-fra.com

Flask "Erreur: le fichier/chemin fourni ne semble pas exister" bien que le fichier existe

J'utilise export FLASK_APP=flask_app puis flask run mais j'obtiens l'erreur suivante:

Erreur: le fichier/chemin fourni (flask_app) ne semble pas exister. Veuillez vérifier que le chemin est correct. Si l'application n'est pas sur PYTHONPATH, assurez-vous que l'extension est .py

Cependant, le fichier existe existe et est même dans le répertoire de travail actuel. L'utilisation du chemin complet du fichier ne fonctionne pas non plus.

13
PDiracDelta

Cette situation se produit lorsque vous avez une ImportError qui ne se propage pas vers votre terminal. Vérifiez tous de vos fichiers pour des instructions d'importation non valides, corrigez-les et l'erreur devrait disparaître.

EDIT 2017-04-02: @ Michael a fait remarquer que ma référence placée maintenant sous le libellé "VIEILLE MESSAGE PARTIE 2" est incorrecte. Je ne sais pas comment cette erreur est arrivée, mais j'ai trouvé un article très récent sur le Flask Github où ils font référence le commit qui aurait dû résoudre le problème le 30 décembre 2016. Probablement à cette époque, j’exécutais effectivement une version plus ancienne du flacon.

OLD MESSAGE PART 2: Ce problème est abordé sur le Flask Github , bien que je ne sache pas quand ni même si le problème a été corrigé, car je rencontre encore l’erreur aujourd'hui même si j’ai téléchargé Flask après la fusion du correctif décrit sur cette page (12 août 2016).

23
PDiracDelta

Le message d'erreur provient de la version 0.x du flacon lors de l'exécution avec des variables d'environnement, il suffit de mettre à niveau votre flacon vers la version 1.x.

pip install -U flask
9
Chayapol

Je vois cette erreur lorsque je manque une instruction import quelque part dans mon code. À mon avis, le fait que l'erreur d'importation ne soit pas affichée est un bogue, comme décrit dans le réponse de @ PDiracDelta. (Update: Il semble que ce sera corrigé dans le flacon 0.13.)

Une solution de contournement qui fonctionne pour moi consiste à spécifier l'application sur la ligne de commande. D'après le message d'erreur que vous avez cité, il semble que votre application s'appelle 'flask_app', il vous suffit donc de taper ceci:

python flask_app.py

Cela n'exécutera pas réellement l'application (sauf si elle vérifie if __== '__main__' ou quelque chose), mais affichera les erreurs d'importation.

6
Michael Scheper

Ce message apparaîtra si vous publiez flask run sur la ligne de commande. Utilisez plutôt python -m flask run après avoir défini les variables export FLASK_APP et export FLASK_ENV. J'ai rencontré ce problème en suivant le didacticiel Flask lors de la création de Application Factory. L'instruction ne spécifie pas de préfixer flask run avec python -m.

3
y2knoproblem

S'il vous plaît suivez ces étapes:

  1. Assurez-vous que vous avez déjà terminé avec [pip install --editable. ]. où '.' représente l'emplacement du répertoire où votre application est installée. par exemple (flask_app)

  2. Exécutez pythonIl ouvrira un interpréteur python en ligne de commande

  3. Essayez d'importer l'application du flacon Si c'est son erreur, vous obtiendrez l'erreur détaillée . Essayez de réparer cette erreur.

J'ai rencontré le même problème et suivi les étapes ci-dessus et constaté qu'il y a une erreur dans le code en cours d'exécution. L'interprète montre une erreur de compilation.

1
Gopal Prasad

La version werkzeug ne convient pas au ballon. Pour résoudre ce problème, vous devez mettre à niveau le werkzeug, utilisez: $pip install werkzeug --upgrade

0
Eds_k

Même problème ici, à l’étape 5 du didacticiel du flacon: http://flask.pocoo.org/docs/0.12/tutorial/dbinit/

Ce que j'ai fait c'est

1) dans l’environnement virtuel, désinstallez le paquet en pip uninstall flaskr

2) désactiver l'environnement virtuel, puis le réactiver par deactivate puis source bin/activate

3) réinstallez le paquet flaskr par pip install --editable .

4) réinitialiser les variables env par export FLASK_APP=flaskr

5) maintenant, faites flask run et appuyez sur localhost: 5000 dans le navigateur génèrent l'erreur 404 (pas de vue, comme prévu) au lieu de l'erreur 500 (fichier non trouvé).

ou flask initdb qui déclenche la fonction init_db() comme prévu

0
X.X

Semblable à y2knoproblem, je suivais le tutoriel officiel de la fiole, donc en utilisant une fabrique d’applications et un environnement virtuel venv. J'ai pu utiliser 

python -m flask run

mais cela a causé des problèmes avec mon IDE servant à localhost plutôt qu’à une adresse accessible de l’extérieur comme c’était le cas lorsque j’exécutais 'flask run' sur un application.py. 

J'ai pu faire ce travail en spécifiant 

export FLASK_APP=__init__.py

au lieu de 

export FLASK_APP=myapp
0
user2903735

Cela pourrait être plusieurs raisons.

python2 vs python3 issue, 

pip2 install Flask vs pip3 install Flask issue, 

et (venv) virtual environment vs local environment issue. 

Dans mon cas, je devais faire ce qui suit pour résoudre le problème: 

  1. python3 -m venv venv

  2. . venv/bin/activate

  3. pip3 install Flask

  4. export FLASK_APP=flask_app

  5. flask run

0
Bao Yutong 鲍昱彤