101 votes

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

Le problème que je rencontre en essayant de me connecter à la base de données pour mysql. J'ai également donné les paramètres de la 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 la 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 votre aide !

140voto

Ron E Points 777

Il semble que le paquet python mysql ne soit pas installé, essayez :

pip install mysql-python

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

sudo pip install mysql-python

0 votes

Utilisez-vous un environnement virtuel ? Je vous le recommande pour garder les choses organisées. Si ce n'est pas le cas, vous devrez exécuter pip avec les privilèges de superutilisateur : sudo pip install mysql-python

3 votes

J'utilise un environnement virtuel, et j'ai installé mysql, django... mais lorsque je fais python manage.py syncdb, j'obtiens la même erreur que celle que j'ai postée.

0 votes

Est-ce que j'ai un problème de version par hasard ? J'utilise django 1.5, python 2.7.3 et mon sql (14.14 pour debian).

40voto

Rashi Points 129

Vous devez installer python-mysqldb - Interface Python pour MySQL

Pruebe
sudo apt-get install python-mysqldb

14voto

Will Points 1283

Ma réponse est similaire à celle de @Ron-E, mais j'ai obtenu quelques erreurs/corrections supplémentaires. Je mets donc mes étapes ci-dessous pour Mac OSX sur Mavericks et Python 2.7.6.

  1. Installez le paquet Python mysql (si vous obtenez un message de succès, alors ignorez les étapes ci-dessous)

    pip install mysql-python
  2. Lorsque j'ai fait ce qui précède, j'ai obtenu 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 j'ai réexécuté l'étape 1, j'ai obtenu une nouvelle erreur "error : command 'cc' failed with exit status 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. J'ai recommencé l'étape 1 et j'ai obtenu le message de réussite 'Successfully installed mysql-python' !

0 votes

Merci pour la suggestion. J'ai compris la première partie de votre problème.

0 votes

J'ai suivi votre méthode mais la première erreur se produit toujours dans mon cas. Et pour ` export CFLAGS=-Qunused-arguments ` le terminal donne cette erreur : -bash: export: =-Qunused-arguments': not a valid identifier

0 votes

Cela a fonctionné pour moi après des heures d'essais. Je ne sais pas pourquoi ce n'est pas la réponse la plus votée. Vous pouvez également vous assurer que vous disposez de la bonne version de MySQL.

12voto

Phoenix Points 1216

Lorsque j'ai configuré l'environnement de développement Django pour PyCharm sous Mac OS X Mountain Lion avec python, mysql, l'application sequel pro, j'ai eu la même erreur que le propriétaire de ce fil. Cependant, ma réponse s'adresse à ceux qui utilisent python-mysqldb sous Mac OS Mountain Lion x86_x64 (MySql et Python doivent avoir la même architecture) et qui ont déjà tout essayé, comme pip, etc. Afin de résoudre ce problème, suivez les étapes suivantes :

  1. Télécharger MySql pour Python à partir de aquí

  2. Décharger le fichier téléchargé. Dans la fenêtre du terminal, faites ce qui suit : tar xvfz downloade.tar.

  3. cd /to untared directory

  4. Exécuter sudo python setup.py install

  5. Si vous obtenez une erreur comme celle-ci : "Erreur d'environnement : /usr/local/bin/mysql_config not found" alors essayez d'ajouter le chemin suivant : "export PATH=$PATH:/usr/local/mysql/bin". Mais cela ne m'a pas aidé et j'ai trouvé une autre solution. A la fin de l'exécution de la commande, la sortie d'erreur ressemble à ceci :

    Fichier "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", ligne 25, in mysql_config raise EnvironmentError("%s not found" % (mysql_config.path,))

  6. Ouvrez setup_posix.py avec vim et allez à la ligne 25 (Dans votre cas, elle peut être différente, 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 obtenu une autre erreur comme suit :

    django.core.exceptions.ImproperlyConfigured : Erreur de 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 : /Bibliothèque/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so Raison : image non trouvée

  9. Finalement, j'ai fait ce qui suit dans la console :

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

Actuellement, tout fonctionne bien. J'espère donc qu'il sera utile à quelqu'un qui utilise un Mac :)

0 votes

Merci beaucoup. Il m'a fallu presque une semaine juste pour exécuter mon premier projet en utilisant mysql haha. Ouf...

0 votes

Merci beaucoup ! Vous m'avez sauvé la mise ! J'utilisais un Mac et j'avais le même problème.

6voto

ruddra Points 1680

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

0 votes

J'utilise ceci, et je n'installe pas mysql sur ma machine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X