web-dev-qa-db-fra.com

ImportError: Aucun module nommé flask.ext.login

J'ai un problème avec le module flask_login.

j'ai installé le module flask_login avec succès. Également à partir de la commande Invite, je peux exécuter ce script facilement sans erreur:

Python 2.7 (r27:82525, Jul  4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from flask.ext.login import LoginManager

Mais quand je lance ce script:

from flask import Flask
from flask.ext.login import LoginManager
app = Flask(__name__)

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

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

je reçois l'erreur:

ImportError: No module named flask.ext.login

Quelle est l'erreur que je fais. Je suis très nouveau dans cette fiole. Merci d'avance.

23
curiousguy

Si la suite ne fonctionne pas:

from flask.ext.login import LoginManager

essayez ce qui suit:

from flask_login import LoginManager

C'est la nouvelle convention.

Pour trouver la version de flask-login, vous pouvez exécuter la commande suivante dans terminal. Il suffit de changer le nom pour connaître la version des autres packages.

pip show flask-login
22
prem kumar

Installez pip, puis utilisez la commande suivante:

C:\Python27\scripts>pip install Flask-Login

14
Najeebullah Shah

Si vous avez déjà installé flask-login par

$pip install flask_login

Essayez de remplacer le

from flask.ext.login import LoginManager

avec 

from flask_login import LoginManager
6
Justin

Il s’agit d’une erreur d’environnement. PYTHONPATH n’est pas configuré correctement, même si vous utilisez IDE. Vous pouvez le tester en créant un petit fichier test: test.py, avec le contenu suivant:

from os import environ
print environ.get('PYTHONPATH')

Si PYTHONPATH ne contient pas le répertoire qui contient votre paquet Flask-Login, c'est le problème.

2
rdegges

Initialement, j'ai installé flask_login sur un environnement virtuel. J'ai découvert que c'est essayer de trouver sur la machine. Donc je l'ai installé globalement comme;

mycomp # pip install -U flask_login

Cela a résolu le problème.

0
7guyo

See Pour moi, la solution la plus simple consiste à supprimer .ext de flask.ext.login et à taper simplement flask_login. Cela fonctionne pour Python 3 et assurez-vous que vous avez correctement installé le paquet souhaité.

0
Kratik

Étrange, mais cela a fonctionné lorsque j'ai essayé d'exécuter le script à partir d'une invite de commande.

C:\Users\dib\Desktop>python foo.py
 * Running on http://127.0.0.1:5000/
127.0.0.1 - - [11/Feb/2014 18:03:52] "GET / HTTP/1.1" 200 -

Mais lorsque j'essaie de fonctionner à partir de la valeur par défaut IDE pressing f5 de Python, cela ne fonctionne pas. 

0
curiousguy

La solution est simple Différentes versions du flacon fonctionnent avec des codes différents, il suffit donc de changer le code: flask.ext.login en code: flask_login

Cela devrait fonctionner sans heurts. 

Notez que cela s'applique également au bootstrap. En fait, afin de trouver la solution, j'ai eu l'erreur lors de l'importation de bootstrap. 

0
Sparrowan