sujeesh
sujeesh

Reputation: 49

Python MySQLdb not importing

I have installed mysql server using

$ sudo apt-get install mysql-server

then I installed python-mysqldb using

$ sudo apt-get install python-mysqldb

but when I import MySQLdb in python it shows the following error

>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named MySQLdb

I reinstalled both mysql server and python-mysqldb but it shows the same error. What am I getting wrong?

Upvotes: 3

Views: 54146

Answers (7)

Haili Sun
Haili Sun

Reputation: 849

"mysql-python" currently does not support python3. There are currently a few options for using Python 3 with mysql. I installed mysqlclient and can import MySQLdb successfully.

$ pip install mysqlclient

$ python
Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> 

Details refer to: https://stackoverflow.com/a/25724855/966660

Upvotes: 2

Manivelan K
Manivelan K

Reputation: 21

Try these commands

sudo apt-get install python-dev libmysqlclient-dev

sudo pip install MySQL-python

Upvotes: 2

lee penkman
lee penkman

Reputation: 1238

You needed to install the module with pip pip install mysql-python

Upvotes: 8

Bryce
Bryce

Reputation: 8762

Your code snippet is fine. So the problem lies with getting libraries to match up. Here are some tools to help track it down... but do post back to let us know how this worked out for you:

$ python --version
Python 2.6.6
$ easy_install yolk
$ yolk --list
DecoratorTools  - 1.7          - active
MySQL-python    - 1.2.2        - active
...

$ pydoc -p 8080
pydoc server ready at http://localhost:8080/

$ python
>>> import MySQLdb
>>> help('modules')
Please wait a moment while I gather a list of all available modules...    
ArgImagePlugin      _bytesio            exceptions          pyexpat
BaseHTTPServer      MspImagePlugin      cProfile            multifile
MySQLdb  ....


$ dpkg -L python-mysqldb
/usr/lib/pyshared/python2.7/_mysql.so
/usr/lib/pyshared/python2.6/_mysql.so

Note the Ubuntu package installs mysql to several python versions.

Upvotes: 2

Tundebabzy
Tundebabzy

Reputation: 879

Why not try installing from the synaptic package manager instead. You could install python-mysqldb-dbg also.

Upvotes: 1

Cat Plus Plus
Cat Plus Plus

Reputation: 129934

Python module names are case sensitive, even on case-insensitive file systems. Therefore "MySQLdb" and "mysqldb" are two different modules/packages. Use import MySQLdb instead.

Upvotes: 3

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 799230

The package name is "MySQLdb". Case counts.

Upvotes: 2

Related Questions