Je cours le code suivant
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __== "__main__":
app.run(Host='0.0.0.0', port=80, debug=True)
et obtenir l'erreur suivante
Traceback (most recent call last):
File "test.py", line 1, in <module>
from flask import Flask
File "/home/pi/programs/flask.py", line 1, in <module>
from flask import Flask
ImportError: cannot import name Flask
J'ai essayé d'installer le ballon par différentes méthodes, mais le problème persiste
aussi, y a-t-il une alternative au ballon ???
Il suffit de lancer apt-get install python-flask
J'ai rencontré cette erreur car j'ai nommé le fichier test sous le nom flask.py et j'ai essayé de l'exécuter! Il crée un conflit d'espace de noms avec le module de flacon real!
Supprimez le fichier de test local que vous avez nommé flask.py et le fichier flask.pyc correspondant. Donnez un autre nom! Cela se produira avec d'autres modules tels que socket
etc où vous donnerez probablement le même nom pour le fichier de test que le module standard :-)
La raison en est que votre nom de fichier python est flask.
Il suffit de renommer flask.py fichier également supprimer flask.pyc fichier
exactement quand nous créons le nom de fichier comme flask.py et que nous l'exécutons pour la première fois, il sera exécuté et en même temps, le framework créera un autre fichier appelé flask.pyc. de rechercher dans le fichier de structure réel, il recherche celui que vous avez créé. Pour résoudre ce problème, accédez au dossier dans lequel vous avez créé flask.py et supprimez flask.pyc, puis renommez flask.py en un fichier test_1.py ..save et exécutez-le. Vous ne devriez voir aucune erreur.
C'est à cause du nom flask.py. Il importera lui-même si le nom est flask.py. Changez le nom et réessayez.
Redémarrer l'environnement virtuel
$ virtualenv flask
Dans dir flask run
$source ./bin/activate
Installez à nouveau le module python
$pip install "module"
J'ai eu le même problème. Apparemment, vous ne pouvez pas nommer votre fichier socket.py non plus.