13

I've just learned how to use virtualenv and I installed Django 1.4.5. I'm assuming that the virtualenv created a clean slate for me to work on so with the Django 1.4.5 installed, I copied all my previous files into the virtualenv environment.

I tried to run the server but I get an error saying "no module named MySQLdb". I think this means that I forgot to install MySQL-python. I tried to install it via

    pip install MySQL-python

But I get this error

    Downloading/unpacking MySQL-python
    Running setup.py egg_info for package MySQL-python
    The required version of distribute (>=0.6.28) is not available,
    and can't be installed while this script is running. Please
    install a more recent version first, using
    'easy_install -U distribute'.

    (Currently using distribute 0.6.24     (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg))
    Complete output from command python setup.py egg_info:
    The required version of distribute (>=0.6.28) is not available,

    and can't be installed while this script is running. Please

    install a more recent version first, using

    'easy_install -U distribute'.



    (Currently using distribute 0.6.24  (/home/bradford/Development/Django/django_1.4.5/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg))

    ----------------------------------------
    Command python setup.py egg_info failed with error code 2 in /home/bradford/Development/Django/django_1.4.5/build/MySQL-python

Not quite sure how to go about fixing this problem =/ any help much appreciated!

perror
  • 7,071
  • 16
  • 58
  • 85
Liondancer
  • 15,721
  • 51
  • 149
  • 255

8 Answers8

23

I recently had exactly this issue (just not in relation to Django). In my case I am developing on Ubuntu 12.04 using the default pip and distribute versions, which are basically a little out of date for MySQL-python.

Because you are working in an isolated virtualenv, you can safely follow the suggested instruction without affecting your Python installation.

So you can...

workon your_virtualenv #activate your virtualenv, you do use virtualenvwrapper, right?
easy_install -U distribute #update distribute on your virtualenv
pip install MySQL-python #install your package

If for some reason upgrading distribute is not an option, you could try installing an older version of MySQL-python as follows (you'd have to check this version is compatible with your version of Django):

pip install MySQL-python==x.y.z #where x.y.z is the version you want
lofidevops
  • 15,528
  • 14
  • 79
  • 119
14

Spent an hour looking through stackoverflow. Evntually found answer in the other question. This is what saved me:

sudo apt-get install libmysqlclient-dev

mysql_config goes with the package.

Community
  • 1
  • 1
Artem Fedosov
  • 2,163
  • 2
  • 18
  • 28
8

When doing in a virtualenv :

pip install MySQL-python

I got

EnvironmentError: mysql_config not found

To install mysql_config, as Artem Fedosov said, first install

sudo apt-get install libmysqlclient-dev

then everything works fine in virtualenv

Pierre Jauniaux
  • 111
  • 1
  • 2
3

MySQL driver for Python (mysql-python) needs libmysqlclient-dev. You can get it with:

sudo apt-get update
sudo apt-get install libmysqlclient-dev

If python-dev is not installed, you may have to install it too:

sudo apt-get install python-dev

Now you can install MySQL driver:

pip install mysql-python

Here is a more detailed documentation for MySQL in Django:

http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/

Sibi M
  • 31
  • 5
2

I had to do this:

pip install mysql-python

inside the virtualenv

David 天宇 Wong
  • 3,724
  • 4
  • 35
  • 47
2

The commands are always run in ubuntu:

easy_install -U distribute

later

sudo apt-get install libmysqlclient-dev

and finally

pip install MySQL-python
ray
  • 171
  • 1
  • 11
2

The suggested solutions didn't work out for me, because I still got compilation errors after running

`$ sudo apt-get install libmysqlclient-dev`  

so I had to run

 apt-get install python-dev

Then everything worked fine for me with

apt-get install python-dev
PKuhn
  • 1,338
  • 1
  • 14
  • 30
0

Try this:

Version Python 2.7

MySQL-python package, you should use either MySQL_python‑1.2.5‑cp27‑none‑win32.whl or MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl depending on whether you have installed 32-bit or 64-bit Python.

pip install MySQL_python‑1.2.5‑cp27‑none‑win32.whl

if you are using mysqlclient package, then use mysqlclient‑1.4.6‑cp27‑cp27m‑win32.whl or mysqlclient‑1.4.6‑cp27‑cp27m‑win_amd64.whl

pip install mysqlclient‑1.4.6‑cp27‑cp27m‑win32.whl

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

Habplo
  • 1
  • 3