New to flask and Flask-Login - ImportError: No module named login New to flask and Flask-Login - ImportError: No module named login flask flask

New to flask and Flask-Login - ImportError: No module named login


There was a transition of the flask extension import way:

Instead we now recommend naming packages flask_foo instead of the now deprecated flaskext.foo. Flask 0.8 introduces a redirect import system that lets uses import from flask.ext.foo and it will try flask_foo first and if that fails flaskext.foo.

Flask extensions should urge users to import from flask.ext.foo instead of flask_foo or flaskext_foo so that extensions can transition to the new package name without affecting users. (Source)

Use this import way with Flask 0.8 or later:

from flask.ext.login import LoginManager


For flask-login 0.3.2 and later, following is the way:

from flask_login import LoginManager

to find the flask-login version, you can run the following command in terminal. Just change the name to know the version of other packages.

pip show flask-login

Note:- not sure from which version of flask-login this convention is followed


There was yet another transition of the way Flask extensions are imported.

The Flask 0.8 style from flask.ext.login import … is no longer supported, and the even earlier style from flaskext.login import … is also no longer supported.

Use this way with Flask 1.0 or later:

from flask_login import LoginManager