5
votes

ModuleNotFoundError: aucun module nommé 'flask'

Après avoir lu le titre de ce message, n'essayez pas de faire du double en premier car le contenu ci-joint peut être demandé de manière différente. Btw, je suis très nouveau en python et commence à apprendre maintenant pour les exigences de travail.

voici mes dépendances

virtualenv --version => 15.0.2 p >

pip --version => 19.0.3

flask --version => 1.0.2, Python 2.7.10 (par défaut, 17 août 2018 , 19:45:58)

python --version => 3.7.1

Et voici mon code source de main.py

from flask import Flask
app = Flask(__name__)

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

Le problème est une erreur de suivi rencontrée lors du rendu comme python main.py

Traceback (dernier appel en dernier): fichier "main.py", ligne 1, dans à partir de l'importation de flask Flask ModuleNotFoundError: Aucun module nommé 'flask'

Mais quand je rendais comme FLASK_APP = main.py flask run , cela fonctionnait. Veuillez me faire savoir quelle est la différence entre python ... et FLASH_APP = ...


8 commentaires

Il semble que vous ayez installé flask qui utilise la version Python 2.7, mais votre python par défaut est Python 3.7.1. Affichez-vous les versions de package de votre virtualenv ou certains de ces packages sont-ils installés globalement?


@bagljas c'est installé dans virtualenv


Pouvez-vous s'il vous plaît vérifier la sortie des commandes suivantes dans le terminal dans lequel la commande flask run fonctionnait et python non? quel python , quel pip et quel flacon . Ils devraient tous afficher les chemins d'accès aux exécutables dans votre virtualenv, par exemple ~ / .virtualenvs / tmp-ec6bfce85be4e9c8 / bin / python


De plus, pour que votre application fonctionne via la commande python main.py , vous devez ajouter `if __name__ == '__main__': \ n app.run ()`


Est-ce que pip uninstall flask && python -m pip install flask fera l'affaire?


@bagljas sont tous les deux sous mon répertoire de projet / Users / user / Documents / Projects / Python / flask / bin / ...


@PavelVergeev qui fonctionnait. Cool...


@PPShein génial! Cela signifie que probablement la commande pip pointe vers le mauvais pip à l'échelle du système. Pour utiliser le pip local, faites python -m pip .


3 Réponses :


9
votes

pip peut pour une raison quelconque pointer vers pip à l'échelle du système (qui sur de nombreux systèmes correspond à Python 2.7). Pour utiliser pip depuis virtualenv, utilisez la commande python -m pip . La commande suivante fera l'affaire:

sudo apt remove python-flask
pip install flask

Une autre possibilité est que vous ayez installé flask via apt et non pip . Voici la différence entre les deux: Quelle est la différence entre `sudo apt install python3-flask` ​​et` pip3 install Flask`?

La commande flask est désormais disponible dans tout le système.

Si tel est le cas, désinstaller flask avec apt et l'installer avec pip devrait faire l'affaire:

pip uninstall flask && python -m pip install flask


0 commentaires

0
votes

Comme l'a dit Pavel; vous pouvez utiliser python 2.7 au lieu de python 3 pour exécuter votre projet ...

J'ai eu ce problème et en utilisant cette commande au lieu de la commande de Pavel, problème résolu

pip uninstall flask && python3.7 -m pip install flask

Vous pouvez remplacer flask par n'importe quelle autre bibliothèque et cela fonctionnera

J'espère que cela fonctionne pour tout le monde voit cela aussi


0 commentaires

0
votes

Si vous utilisez Visual Studio Code IDE avec pipenv et obtenez l'erreur ci-dessus, vous devez vérifier ceci lien.


0 commentaires