I have a Flask project which I've put the flask module (version 0.9) directly beside my app.py file. I've done this so that I can bundle everything into a version control repository that won't require anyone else using it to install additional Python modules.
I want to use flask-login so I've tried to manually install it by downloading the latest version and putting the flask_login.py file in my "local" flask/ext/ directory. However, while I can import flask
and import flask.ext
, I am unable to import flask.ext.login
with Python throwing ImportError: No module named flask.ext.login
. import flask.ext.flask_login
throws an import error as well.
Is there something I have to do differently if Flask and it's extensions are local to the app.py?
The solution is to put the flask_login.py
file in the same directory as my app.py file. No modification of the flask/ext/__init__.py
file is necessary.
The flask.ext
module is intended only as a an extension importer, not a repository for installed extensions. Based on the import path, I thought the flask/ext
folder was where extensions were to be copied. This was incorrect. Extensions simply need to be somewhere on the python path.