web-dev-qa-db-fra.com

django.core.exceptions.ImproperlyConfigured: Erreur lors du chargement du module MySQLdb: Aucun module nommé MySQLdb

Le problème auquel je suis confronté lors de la tentative de connexion à la base de données pour mysql. J'ai également donné les paramètres de base de données que j'ai utilisés.

 Traceback (most recent call last):
 File "manage.py", line 10, in <module>
 execute_from_command_line(sys.argv)
 File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/commands/syncdb.py", line 8, in <module>
from Django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/core/management/sql.py", line 9, in <module>
from Django.db import models
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Paramètres de base de données ::

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'Oracle'.
        'NAME': 'ar_test_db',                      # Or path to database file if using 
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'Host': '',                      # Empty for localhost through domain sockets or   '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

Merci beaucoup pour l'aide !!

78
getitstarted

On dirait que vous n'avez pas installé le paquet python mysql, essayez:

pip install mysql-python

ou si vous n'utilisez pas d'environnement virtuel (sur les hôtes * nix):

Sudo pip install mysql-python
126
Ron E

vous devez installer python-mysqldb - Python avec MySQL

Essayer
Sudo apt-get install python-mysqldb

32
Rashi

Si vous rencontrez des erreurs lors de la tentative d'installation de mysqlclient avec pip, la librairie de développement mysql risque de vous manquer. Installez-le en exécutant:

apt-get install libmysqlclient-dev

et essayez à nouveau d'installer mysqlclient:

pip install mysqlclient
31
Psddp

Lors de la configuration de Django environnement de développement pour PyCharm sous Mac OS X Mountain Lion avec python, mysql, suite de l'application pro, l'erreur est restée identique en tant que propriétaire de ce fil. Cependant, ma réponse pour ceux qui exécutent python-mysqldb sous Mac OS Mountain Mountain x86_x64 (MySql et Python devraient également être dotés de la même architecture) et ont déjà tout essayé, comme pip, etc. Pour résoudre ce problème, procédez comme suit: pas:

  1. Téléchargez MySql pour Python à partir de ici
  2. Décompressez le fichier téléchargé. Dans la fenêtre du terminal, procédez comme suit: tar xvfz downloade.tar.
  3. cd/dans un répertoire sans disque
  4. Exécutez Sudo python setup.py install
  5. Si vous obtenez une erreur du genre: "Erreur d’environnement:/usr/local/bin/mysql_config introuvable", essayez d’ajouter le chemin ass suivant: "export PATH = $ PATH:/usr/local/mysql/bin". Mais ça ne m'a pas aidé et j'ai trouvé une autre solution. À la fin de la sortie d'erreur d'exécution de commande qui ressemble à ceci:

    Fichier "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", ligne 25, dans mysql_config soulève EnvironmentError ("% s n'a pas été trouvé"% (mysql_config.path,))

  6. Ouvrez setup_posix.py avec vim et allez à la ligne 25 (Dans votre cas, cela peut être différent sauf si c'est la même version).

  7. La ligne 25 devrait ressembler à ceci après votre édition, à moins que votre mysql ait un lien symbolique comme suit: '/ usr/local/mysql/bin /':

    f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))

  8. Après cela, j'ai une autre erreur comme suit:

    Django.core.exceptions.ImproperlyConfigured: Erreur lors du chargement du module MySQLdb: dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.Egg/_mysql.so, 2) : Bibliothèque non chargée: libmysqlclient.18.dylib Référencé depuis: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.Egg/_mysql.so Motif: image non trouvée

  9. Enfin j'ai suivi en console:

    Sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

Actuellement tout fonctionne bien. J'espère donc que ce sera utile pour quelqu'un qui utilise Mac. :)

11
Khamidulla

Ma réponse est similaire à @ Ron-E, mais j'ai quelques erreurs/corrections en plus, donc je mets mes étapes ci-dessous pour Mac OSX sur Mavericks et Python 2.7.6.

  1. Installer Python mysql (si vous obtenez un message de réussite, ignorez les étapes ci-dessous)

    pip install mysql-python
    
  2. Quand j'ai fait ce qui précède, j'ai eu l'erreur "EnvironmentError: mysql_config not found" enter image description here Pour résoudre ce problème, j'ai fait ce qui suit dans le terminal:

    export PATH=$PATH:/usr/local/mysql/bin
    
  3. Lorsque je répète l'étape 1, j'obtiens une nouvelle erreur "erreur: la commande 'cc' a échoué avec l'état de sortie 1" enter image description here Pour résoudre ce problème, j'ai fait ce qui suit dans le terminal:

     export CFLAGS=-Qunused-arguments
     export CPPFLAGS=-Qunused-arguments
    
  4. Je répète l'étape 1 et reçois le message de succès 'Installation réussie de mysql-python'!

10
Will

Téléchargez et installez Mysql-python à partir d'ici pour l'environnement Windows. http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python .

6
ruddra

La bibliothèque python mysqldb est manquante. Utilisez cette commande (pour Debian/Ubuntu) pour l’installer: Sudo apt-get install python-mysqldb

6
Haimei

C'est parce qu'il n'a pas trouvé le connecteur SQL. essayer:

pip install mysqlclient
4
Anand Prakash

Sur Ubuntu, il est conseillé d'utiliser le référentiel de distributions.

Sudo apt-get install python-mysqldb
3
Gaurav Agarwal

Pour Ubuntu 16.04 et 18.04 ou python 3 versions

Sudo apt-get install python3-mysqldb
2
Gowthaman

Cela m'est aussi arrivé et je pense que cela est devenu une erreur courante non seulement pour les Django mais aussi pour les développeurs Flask, donc la façon dont j'ai résolu le problème cette question utilisait de la bière.

  1. brew install mysql
  2. Sudo pip install mysql-python

De cette façon, chaque problème a été résolu et les deux cadres fonctionnent parfaitement.

P.S .: Pour ceux qui utilisent macports (comme moi), cela peut être un problème car la brasserie fonctionne à un niveau différent, mon conseil est d'utiliser brassage au lieu de macports

J'espère que je pourrais être utile.

2
pykimera

Avec le même message d'erreur que Will, cela a fonctionné pour moi d'installer d'abord mysql car le fichier manquant sera ajouté lors de l'installation. Donc après

brew install mysql

pip install mysql-python

couru sans erreur.

1
cmdAmir

J'avais le même problème. Ce qui suit a résolu mon problème.

Exécutez pip install pymysql dans votre shell

Ensuite, éditez le fichier init.py dans le répertoire Origin de votre projet (identique à settings.py), puis

ajouter:

importation de pymysql

pymysql.install_as_MySQLdb ()

cela devrait résoudre le problème.

0
Vaishnav Raja

J'ai résol ce problème dans cet environnement:

$ pyenv --version
pyenv 1.2.9

$ python --version
Python 3.7.2

$ python -m Django --version
2.1.7

./ settings.py

DATABASES = {
    'default': {
        'NAME': 'my_db_name',
        'ENGINE': 'mysql.connector.Django',   # 'Django.db.backends.mysql'
        'USER': '<user>',
        'PASSWORD': '<pass>',
        'Host': 'localhost',
        'PORT': 3306,
        'OPTIONS': {
            'autocommit': True,
        },
    }
}

Si tu utilises 'ENGINE': 'mysql.connector.Django', installez le pilote qui exécute:

$ pip install mysql-connector-python
Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0

Notez que $ pip install mysql-pythonn'a pas fonctionné pour moi.

Notez que si vous utilisez 'ENGINE': 'Django.db.backends.mysql', vous devez installer le pilote qui exécute:
$ pip install mysqlclient

Enfin, exécutez:
$ python manage.py migrate

Si tout va bien, python crée toutes ces bases de données id de tables:

auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
Django_admin_log
Django_content_type
Django_migrations
Django_session
0
JavierFuentes

Pour ajouter d’autres réponses, si vous utilisez Django, il est conseillé d’installer mysql-python AVANT d’installer Django.

0
Anoyz

Face à un problème similaire. J'ai essayé d'installer mysql-python utilisant pip, mais cela a échoué à cause d’erreurs de dépendance gcc.

La solution qui a fonctionné pour moi

conda install mysql-python

Veuillez noter que j’avais déjà installé anaconda, qui n’avait pas de dépendance à gcc.

0
Ayush Vatsyayan

si l'erreur ressemble à ceci

Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module:
dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: 
/usr/local/opt/mysql/lib/libmysqlclient.20.dylib
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so

alors essaye :

pip install python-mysqldb
0
blueChair

Si vous utilisez python version 3.4 ou supérieure. vous devez installer

Sudo apt-get install python3-dev libmysqlclient-dev 

dans le terminal. puis installez pip install mysqlclient sur votre virtualenv ou à l’endroit où vous avez installé pip.

0
selvakumar

J'ai perdu beaucoup de temps à ce sujet. Il s'avère que la bibliothèque de base de données par défaut n'est pas prise en charge pour Python 3. . Vous devez en utiliser une autre .

0
Deleet