ImportError: No module named sqlalchemy

PythonSqlalchemyFlask Sqlalchemy

Python Problem Overview


I'm unable to find a module in python ,though easy_install says its already installed. Any idea how to resolve this isseue?

$ python -c "from flaskext.sqlalchemy import SQLAlchemy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named sqlalchemy


$ python -V
Python 2.7


$ sudo easy_install sqlalchemy
Searching for sqlalchemy
Best match: SQLAlchemy 0.7.7
Adding SQLAlchemy 0.7.7 to easy-install.pth file

Using /usr/lib/python2.7/site-packages
Processing dependencies for sqlalchemy
Finished processing dependencies for sqlalchemy

> $ sudo pip install SQLAlchemy --upgrade Requirement already > up-to-date: SQLAlchemy in /usr/lib/python2.7/site-packages Cleaning > up...

Though pip says it's installed.But I can't find them in sys.path output.

$ sudo python -c "import sys;print sys.path" ['',
'/usr/lib/python2.7/site-packages/Flask_SQLAlchemy-0.15-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask-0.8-py2.7.egg',
'/usr/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg',
'/usr/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_WTF-0.5.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/WTForms-0.6.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_Mail-0.6.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/blinker-1.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/lamson-1.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/python_daemon-1.6-py2.7.egg',
'/usr/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/mock-0.8.0-py2.7.egg',
'/usr/lib/python2.7/site-packages/chardet-1.0.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/Flask_FlatPages-0.2-py2.7.egg',
'/usr/lib/python2.7/site-packages/Markdown-2.1.1-py2.7.egg',
'/usr/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-i686.egg',
'/usr/lib/python2.7/site-packages/uWSGI-1.0.3-py2.7.egg',
'/usr/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-i686.egg',
'/usr/lib/python27.zip', '/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']

Python Solutions


Solution 1 - Python

Did you install flask-sqlalchemy? It looks like you have SQLAlchemy installed but not the Flask extension. Try pip install Flask-SQLAlchemy in your project's virtualenv to install it from PyPI.

Solution 2 - Python

I just experienced the same problem. Apparently, there is a new distribution method, the extension code is no longer stored under flaskext.

Source: Flask CHANGELOG This worked for me:

from flask_sqlalchemy import SQLAlchemy

Solution 3 - Python

Install Flask-SQLAlchemy with pip in your virtualenv:

pip install flask_sqlalchemy

Then import flask_sqlalchemy in your code:

from flask_sqlalchemy import SQLAlchemy

Solution 4 - Python

Okay,I have re-installed the package via pip even that didn't help. And then I rsync'ed the entire /usr/lib/python-2.7 directory from other working machine with similar configuration to the current machine.It started working. I don't have any idea ,what was wrong with my setup. I see some difference "print sys.path" output earlier and now. but now my issue is resolved by this work around.

EDIT:Found the real solution for my setup. upgrading "sqlalchemy only doesn't solve the issue" I also need to upgrade flask-sqlalchemy that resolved the issue.

Solution 5 - Python

try this:

from flask.ext.sqlalchemy import SQLAlchemy

Solution 6 - Python

first install the library

pip install flask_sqlalchemy 

after that

from flask_sqlalchemy import SQLAlchemy

put this in app.py file to get the access of database through SQLAlchemy

Solution 7 - Python

So here is an idea!

Since it seemed to work somewhere else.

install python-virtualenv and optionally you can install virtualenv-wrapper (which is pretty cool to create projects and so on)

In each env, you might have different versions of eggs. In other word, you could have sqlalchemy 1 and sqlaclhemy 1.5 in two different envs and they won't conflict with each others. It seems that you have a problem with your currently installed eggs.

So here we go:

virtualenv --no-site-packages foo
source foo/bin/activate

The parameter --no-site-packages will create a virtualenv and not use the packages already installed on your computer. It's pretty much like a bare python install.

source foo/bin/activate loads the virtualenv.

It's not that really userfriendly. And that's why http://www.doughellmann.com/projects/virtualenvwrapper/ exists.

That said, you should see somthing like thant in your terminal "(foo)user@domain$:" once your virtualenv is activated. It means that you can go on!

Then you have to do.

python setup.py develop of your project. It should download and install dependencies of your project in the virtualenv located in foo. If you need to install anything else, please use pip or easy_install without using sudo. When using virtualenv, you almost never need to use sudo. Sudo will install package in your global python install while it's not required and not really desirable.

If something happens in your virtualenv, you can always delete it and create a new one. This is no big deal. No need to mess with anything. Doesn't work? start over, do pip install -U if needed, define the versions if needed and so on.

Last but not least, in the other answers, it seems that the import changed. If the new versions for flask-sqlalchemy is located somewhere else, you should update your import or install the version you used to use.

Solution 8 - Python

This code works perfectly:

import sqlalchemy

Maybe you installed the package in another version of the interpreter?

Also, like Shawley pointed out, you need to have the flask extension installed in order for it to be accessible.

Solution 9 - Python

I'm new comer, use python 3.8 and met the same problem. I installed with pip instead of pip3 because i thought the pip installer is the same for python2 and python3 so this is proper installation

pip3 install flask_sqlalchemy

Solution 10 - Python

Probably a stupid mistake; but, I experienced this problem and the issue turned out to be that "pip3 install sqlalchemy" installs libraries in user specific directories.

On my Linux machine, I was logged in as user1 executing a python script in user2's directory. I installed sqlalchemy as user1 and it by default placed the files in user1's directory. After installing sqlalchemy in user2's directory the problem went away.

Solution 11 - Python

Solution for me was to use:

from flask_sqlalchemy import SQLAlchemy

instead of

from flask.ext.sqlalchemy import SQLAlchemy

Solution 12 - Python

Very late to the party but hopefully this will help someone, was in the same situation for about a hour without any of the solutions mentioned above working. (On a Windows 10 machine).

In the Settings/Preferences dialog (Ctrl+Alt+S), from the side menu select Project: | Project Interpreter.

Check which packages you currently have installed (You need SQLAlchemy and Flask-SQLAlchemy). Double click on any package name, an 'Available Packages' menu will open.

Search for the missing package(s) and click install.

Solution 13 - Python

On Windows 10 @ 2019

I faced the same problem. Turns out I forgot to install the following package:

pip install flask_sqlalchemy

After installing the package, everything worked perfectly. Hope, it helped some other noob like me.

Solution 14 - Python

I just experienced the same problem using the virtual environment. For me installing the package using python from the venv worked:
.\venv\environment\Scripts\python.exe -m pip install flask-sqlalchemy

Solution 15 - Python

I am not sure if it is still relevant but try uninstalling sqlalchemy and then installing flask-sqlalchemy.

I guess if you have sqlalchemy, flask-sqlalchemy wont work.

Tried in Python 3.8

Solution 16 - Python

I also faced the same problem by a silly mistake. I have created a separate conda environment for flask from scratch. However, I tried to test the import of FlaskSQLAlchemy using IPython. Finally, I realized that it was the system-based python, not the one coming from conda env. Always make sure that your sys.path contains the directory with flask_sqlalchemy.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionwebminal.orgView Question on Stackoverflow
Solution 1 - PythonD.ShawleyView Answer on Stackoverflow
Solution 2 - PythonsibandeView Answer on Stackoverflow
Solution 3 - PythonMing LiuView Answer on Stackoverflow
Solution 4 - Pythonwebminal.orgView Answer on Stackoverflow
Solution 5 - PythonmataView Answer on Stackoverflow
Solution 6 - PythonJatin Krishna HabibkarView Answer on Stackoverflow
Solution 7 - PythonLoïc Faure-LacroixView Answer on Stackoverflow
Solution 8 - Pythonuser1254893View Answer on Stackoverflow
Solution 9 - PythonAlexey NikonovView Answer on Stackoverflow
Solution 10 - PythonMarco RosasView Answer on Stackoverflow
Solution 11 - PythonGeorge MogilevskyView Answer on Stackoverflow
Solution 12 - PythonRiceCrispyView Answer on Stackoverflow
Solution 13 - PythonMujeeb IshaqueView Answer on Stackoverflow
Solution 14 - PythonPrimakovView Answer on Stackoverflow
Solution 15 - PythonAdityaView Answer on Stackoverflow
Solution 16 - PythonMarcin KawkaView Answer on Stackoverflow