views:

617

answers:

1

As part of trying out django CMS (http://www.django-cms.org/), I'm struggling with getting Python-MySQLdb to work (http://pypi.python.org/pypi/MySQL-python/).

  • I have installed Django CMS and all of its dependencies (Python 2.5, Django, django-south, MySQL server)
  • I'm trying out the example code within Django CMS code with MySQL as chosen database type

When I execute python manage.py syncdb, the following error occurs:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: /root/.python-eggs/MySQL_python-1.2.3c1-py2.5-linux-i686.egg-tmp/_mysql.so: wrong ELF class: ELFCLASS32

I have been able to trace the problem specifically to python-mySQLdb (as also visible in the stack trace). Other than that, I am completely puzzled. I don't have a clue what ELFCLASS32 means, or what ELF class is anyway.

I suspect that this error could have something to do with the fact that I am running 64-bit version of Debian 5 (on a VPS).

Any good ideas how to troubleshoot?

+3  A: 

Yes, the bit difference is what's causing this. Find or build a 64-bit version of MySQLdb.

ELF is the Executable and Linkable Format. ELFCLASS32 means that it's a 32-bit ELF file.

Ignacio Vazquez-Abrams
Thank you for a very good explanation! Now I just need to find how to compile or find a 64-bit version of MySQLdb.
jsalonen
...or use your 32-bit MySQLdb with a 32-bit version of python.
mark4o
Thanks a lot guys IT WORKS NOW! I retrieved the correct .egg for my system and it works like a charm now!A final problem was that the invalid .egg file was deployed under Python's site-packages (/usr/lib/python2.5/site-packages/). I removed it and the new file loads now correctly!
jsalonen