web-dev-qa-db-fra.com

Flask ImportError: aucun flacon nommé du module

Je suis le tutoriel Flask ici: 

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

J'arrive au point où j'essaie ./run.py et j'obtiens:

Traceback (most recent call last):
  File "./run.py", line 3, in <module>
    from app import app
  File "/Users/benjaminclayman/Desktop/microblog/app/__init__.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask

Cela ressemble à:

ImportError: Aucun module nommé flask

Mais leurs solutions ne sont pas utiles. Pour référence, je do _ ai un dossier nommé flask qu'un utilisateur mentionné peut causer des problèmes.

47
bclayman

essayez de supprimer le virtualenv que vous avez créé . créez un nouveau virtualenv

virtualenv flask

puis 

cd flask

activons le virtualenv

source bin/activate

maintenant, vous devriez voir (flacon) à gauche de la ligne de commande . Nous allons installer le flacon

pip install flask

Puis créez un fichier hello.py

from flask import Flask
app = Flask(__name__)

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

if __== "__main__":
    app.run()

et l'exécuter avec

python hello.py

UPDATE Flask 1.0.2

Avec la nouvelle version du flacon, il n’est pas nécessaire de lancer l’application à partir de votre script . Hello.py devrait ressembler à ceci:

from flask import Flask
app = Flask(__name__)

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

et l'exécuter avec

FLASK_APP=hello.py flask run

assurez-vous d'être dans le dossier où se trouve hello.py lors de l'exécution de la dernière commande.

Toutes les étapes avant la création de hello.py s'appliquent également à ce cas

74
Rollback

Pour Python 3, utilisez

pip3 installer la fiole

26
Khalid Bin Huda

Le seul moyen de résoudre ce problème était d’ajouter le répertoire python de mes utilisateurs au fichier myapp.wsgi. Par exemple:

sys.path.append('/home/deployer/anaconda3/lib/python3.5/site-packages')

Je suppose que si vous installez les paquetages dans l'environnement global, vous ne devriez pas avoir de problème, mais j'avais mes paquets python installés en tant qu'utilisateur.

8
Julian

J'ai eu un problème similaire avec Flasgger.

La raison en est que j'utilise toujours 

Sudo pip install flask 

mais pour une raison quelconque, ce n'est pas toujours la voie à suivre . Parfois, vous devez faire juste

pip install flask

Un autre piège est que parfois les gens tapent pip install Flask avec le cap F

Afficher ceci ici au cas où quelqu'un se retrouverait coincé ……… .. Faites-moi savoir si cela vous a aidé.

Lien utile: Quelle est la différence entre pip install et sudo pip install?

4
aneesh joshi

J'utilisais python2 mais j'ai installé ceci: Sudo apt-get install libapache2-mod-wsgi-py3

Au lieu de: Sudo apt-get install libapache2-mod-wsgi

La correction de l'installation a résolu le problème de l'absence de flacon.

3
Norman Pilusa
  1. Éditer /etc/Apache2/sites-available/FlaskApp.conf
  2. Ajoutez les deux lignes suivantes avant la ligne "WSGIScriptAlias":

WSGIDaemonProcess FlaskApp python-home=/var/www/FlaskApp/FlaskApp/venv/FlaskAppWSGIProcessGroup FlaskApp

  1. Redémarrez Apache: service Apache2 restart

Je suis aussi le didacticiel Flask. Et j'ai rencontré le même problème.

http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

2
NingAnMe

Dans mon cas, la solution était aussi simple que de démarrer mon environnement virtuel, comme ceci:

$ venv/scripts/activate

Il s'avère que je suis encore frais pour Python :)

2
Abid

Après avoir activé l'environnement virtuel et installé Flask, j'ai créé un fichier app.py. Je le lance comme ceci: python -m flask run. J'espère que cela aidera! 

1
Bogdan001

Même moi aussi, je suggère que vous utilisiez virtuellement, Cela pourrait également résoudre votre problème. 

Sudo apt install python-flask

Si vous voulez déployer dans productionserver puis aller de l'avant avec la solution ci-dessus sinon utilisez virtualenv.

1
yunus

c'est ce qui a fonctionné pour moi,

Sudo -H pip install flask 

Ou pour pip3 (python3), utilisez:

Sudo -H pip3 install flask

Sidenote

Si vous utilisez virtualenv, c'est une bonne idée de pip freeze >> requirements.txt D'autoriser la liste des packages installés à un seul endroit . La commande Sudo et l'indicateur -H. Pour plus d'informations sur le drapeau Sudo's -H, regardez Paul'sanswer . J'espère que cela vous aide.

1
rawplutonium

Accédez au fichier de flacon dans le microblog, puis activez l'environnement virtuel avec source bin/activate, puis accédez à flask/bin et installez flask, puis le reste des packages, pip install flask. Vous verrez le flacon répertorié dans le répertoire bin. Essayez de relancer ./run.py à partir du microblog (ou de l’endroit où vous avez le fichier).

1
Miguel

Le script de flacon permet de démarrer un serveur de développement local, mais vous devrez le redémarrer manuellement après chaque modification de votre code. Ce n'est pas très gentil et Flask peut faire mieux. Si vous activez la prise en charge du débogage, le serveur se rechargera lors des modifications de code et vous fournira également un débogueur utile en cas de problème. Pour activer le mode débogage, vous pouvez exporter la variable d’environnement FLASK_DEBUG avant d’exécuter le serveur: par exemple, votre fichier est hello.py.

$ export FLASK_APP=hello.py
$ export FLASK_DEBUG=1
$ flask run
0
yasin lachini

entrez votre mode interactif python puis:

import sys

sys.path

cela imprimera votre chemin. Vérifiez si le flacon est installé dans sys.path.

Pour MacOS, le chemin d'accès en python est sous /Opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Mais pipinstall installera le paquet python par défaut sous/Library/Python/2.7/site-packages

C'est pourquoi cela ne fonctionne pas pour MacOS.

0
Tao Wang

Cela a fonctionné pour moi après la mise à niveau de pip:

curl https://bootstrap.pypa.io/get-pip.py | python

Vous avez trouvé cette réponse ici: https://stackoverflow.com/a/49748494/3197202

Ensuite, je pourrais simplement installer le ballon:

pip install flask
0
ivanacorovic

C'est ce qui a fonctionné pour moi quand j'ai eu une erreur similaire dans Windows; 1. Installez virtualenv

pip install virtualenve
  1. Créer une virtualenv

    flacon virtuel

  2. Accédez aux scripts et activez virtualenv

    activer

  3. Installer le flacon

    flacon python -m install

  4. Vérifier si le flacon est installé

    liste de pip python -m

0
sammy ongaya