I was starting work on migrating a project over to Django and needed access to an existing MySQL database. However, I couldn't as I was using Instant Django as a development server on Windows.
When trying to run Instant Django with MySQL, you're gonna see this error:
File "instant_django\Python27\lib\site-packages\django\db\backends\mysql\base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named _mysql
This is because Instant Django only ships with only sqlite support. If you want to run it with MySQL support, you'll have to add a few files your the setup.
Installation
Unfortunately, Instant Django is not installed so the installer for MySQL Python won't work because there is no registry value for Python.
- Download and install the "MySQL-python-1.2.3.win32-py2.7.exe" from codegood.com.
- Extract the contents of "MySQL-python-1.2.3.win32-py2.7.exe" (using WinRar or 7-zip) and you'll get a folder called "PLATLIB".
- Move "_mysql.pyd" and "_mysql_exceptions.py" to "instant_django\Python27\Lib\site-packages\PIL".
- Move "MySQLdb" to "instant_django\Python27\Lib\site-packages".
- Try to start your Django server and it should actually work.
Just in case
Instant Django is running the 32bit version of Python 2.7 (at time of writing), which cannot load the MySQL-Python x64 libraries.
If you're trying to install the 64-bit version, you'll get this error:
File "instant_django\Python27\lib\site-packages\django\db\backends\mysql\base.py", line 14, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: DLL load failed: %1 is not a valid Win32 application.
Now that you're over this hurdle, happy coding!
[ Download ]