2
votes

flask.cli.NoAppException: impossible de trouver l'application ou l'usine Flask dans le module "flaskr". Utilisez "FLASK_APP = flaskr: nom pour en spécifier un

Je construis une application Web Python en utilisant flask et en suivant le didacticiel de http: / /flask.pocoo.org/docs/1.0/tutorial/factory/ . J'exécute le flacon à partir du répertoire parent mais j'obtiens l'erreur suivante.

(venv) E:\python-code\python-web>flask run
 * Serving Flask app "flaskr" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 294-690-396
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello HTTP/1.1" 500 -
Traceback (most recent call last):
  File "e:\python-code\python-web\venv\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
  File "e:\python-code\python-web\venv\lib\site-packages\flask\cli.py", line 95, in find_best_app
    module=module.__name__
flask.cli.NoAppException: Failed to find Flask application or factory in module "flaskr". Use "FLASK_APP=flaskr:name to specify one.
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:43] "GET /hello?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:44] "GET /hello?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
127.0.0.1 - - [16/Mar/2019 13:10:44] "GET /hello?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -

Veuillez aider.

J'ai essayé Running Flask l'application de cli ne donne "aucun module nommé flaskr" et flask.cli.NoAppException: Impossible de trouver l'application dans le module?


2 commentaires

Définissez set FLASK_APP = flaskr et set FLASK_ENV = development dans la cmd Windows, puis exécutez flask run . Ceci est nécessaire pour indiquer à Flask où trouver votre application et pour l'exécuter en mode Développement.


Oui, j'ai également suivi ces étapes.


4 Réponses :


0
votes

Selon le système d'exploitation que vous utilisez, vous devez exporter flaskr dans votre environnement

Pour Linux et Mac:

$env:FLASK_APP = "flaskr"
$env:FLASK_ENV = "development"
flask run```

Pour Windows cmd, utilisez set au lieu d'export :

set FLASK_APP=flaskr
set FLASK_ENV=development
flask run

Pour Windows PowerShell, utilisez $ env: au lieu d'exporter:

export FLASK_APP=flaskr
export FLASK_ENV=development
flask run


1 commentaires

J'ai fait exactement comme mentionné dans le tutoriel



8
votes

J'ai trouvé mon problème. Il me manquait return app comme dernière instruction dans mon code. Désolé pour la confusion et les excuses.


2 commentaires

Vous l'avez oublié dans la fonction __init__.py de la fonction create_app , non? Pour d'autres dans le même cas, il peut être intéressant de savoir où vous l'avez oublié.


J'ai eu cette erreur, l'application de retour était manquante à la fin de create_app dans le fichier init de l'application



0
votes

Le répertoire de votre application n'est-il pas nommé correctement? par exemple, si vous avez écrit FLASK_APP = flaskr mais que le nom de votre projet est autre chose, vous obtiendrez cette erreur. De plus, que contient votre fichier flaskr / flaskr / __ init__.py si le projet est nommé flaskr comme dans le tutoriel?


0 commentaires

0
votes

J'ai suivi les instructions comme le dit le tutoriel officiel, mais j'ai toujours la même erreur.

Mon problème était avec l'IDE que j'utilisais (Pycharm)

Même si j'avais un fichier init .py dans le répertoire flaskr, il n'était toujours pas considéré comme un package.

J'ai donc supprimé le répertoire flaskr et créé un "nouveau paquet". Ensuite, copiez simplement le code dans le init .py et cela résoudra le problème


0 commentaires