Error loading MySQLdb module: no module named 'MySQLdb'

I tried a lot to solve this problem, but I did not solve it. I searched a lot on google and stackoverflow, no option works for me. Please help me. Thanks in advance. I am using django 1.10, python 3.4. I tried:

  • pip install mysqldb.
  • pip install mysql.
  • pip install mysql-python.
  • pip install MySQL-python.
  • easy_install mysql-python.
  • easy_install MySQL-python.

Is there anything else left?

C:\Users\benq\Desktop\dimo-develop\Project>python manage.py runserver Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0332D348> Traceback (most recent call last): File "C:\Python34\lib\site-packages\django\db\backends\mysql\base.py", line 25, in <module> import MySQLdb as Database ImportError: No module named 'MySQLdb' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Python34\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper fn(*args, **kwargs) File "C:\Python34\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inner_run autoreload.raise_last_exception() File "C:\Python34\lib\site-packages\django\utils\autoreload.py", line 249, in raise_last_exception six.reraise(*_exception) File "C:\Python34\lib\site-packages\django\utils\six.py", line 685, in reraise raise value.with_traceback(tb) File "C:\Python34\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper fn(*args, **kwargs) File "C:\Python34\lib\site-packages\django\__init__.py", line 18, in setup apps.populate(settings.INSTALLED_APPS) File "C:\Python34\lib\site-packages\django\apps\registry.py", line 108, in populate app_config.import_models(all_models) File "C:\Python34\lib\site-packages\django\apps\config.py", line 202, in import_models self.models_module = import_module(models_module_name) File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 2254, in _gcd_import File "<frozen importlib._bootstrap>", line 2237, in _find_and_load File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked File "<frozen importlib._bootstrap>", line 1129, in _exec File "<frozen importlib._bootstrap>", line 1471, in exec_module File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed File "C:\Python34\lib\site-packages\django\contrib\auth\models.py", line 4, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "C:\Python34\lib\site-packages\django\contrib\auth\base_user.py", line 49, in <module> class AbstractBaseUser(models.Model): File "C:\Python34\lib\site-packages\django\db\models\base.py", line 108, in __new__ new_class.add_to_class('_meta', Options(meta, app_label)) File "C:\Python34\lib\site-packages\django\db\models\base.py", line 299, in add_to_class value.contribute_to_class(cls, name) File "C:\Python34\lib\site-packages\django\db\models\options.py", line 263, in contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) File "C:\Python34\lib\site-packages\django\db\__init__.py", line 36, in __getattr__ return getattr(connections[DEFAULT_DB_ALIAS], item) File "C:\Python34\lib\site-packages\django\db\utils.py", line 212, in __getitem__ backend = load_backend(db['ENGINE']) File "C:\Python34\lib\site-packages\django\db\utils.py", line 116, in load_backend return import_module('%s.base' % backend_name) File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "C:\Python34\lib\site-packages\django\db\backends\mysql\base.py", line 28, in <module> raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb' 
+7
source share
6 answers

MySQLdb is for Python 2.x only. You cannot install Python version 3.x. Now from your question, I see that you are working with Django. In this case, you have three alternatives: Django mysql notes :

  • mysqldb
  • mysqlclient
  • MySQL Connect Python

This gives you two alternatives: mysqlclient and mysql-connect-python. The first requires compilation from the extensions for the plugin, and on Windows this involves the VStudio libraries and the know-how to compile your own extensions.

mysql-connect-python is not compiled (and I do not recommend this for production, maybe only for dev), so you will need to install this.

You can try:

 pip3 install mysql-connect-python 

or

 pip3 install http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip 

if the first one failed.

+11
source

MySQLdb is the interface to the MySQL database. As mentioned in other posts, MySQLdb does not support Python 3.x. As a replacement, I used PyMySQL. First you need to install it:

 pip install PyMySQL 

The next step is to replace "MySQLdb" with "pymysql" in all the codes, which is scary. Fortunately, PyMySQL can be loaded as MySQLdb in diagonal mode. To achieve this in Django, you need to add the following lines to the __init__.py file in the default project directory (if you have a project named myproject, add the lines to myproject / myproject / init.py)

 import pymysql pymysql.install_as_MySQLdb() 

This __init__.py will be executed when the Django project starts, and MySQLdb will be replaced. Then you solve the problem.

+27
source

Instead of MySQLdb you can use mysqlclient . MySqLdb is not compatible with Python 3.

 pip install mysqlclient 
+9
source

MySQLdb is not compatible with Python 3. Use mysql-client or mysql-connect.

+2
source

You can also try installing mysqlclient-python directly from the source:

+1
source

use this package for Python 2.7 on Windows http://www.codegood.com/archives/129

0
source

All Articles