web-dev-qa-db-fra.com

"Erreur lors du chargement du module MySQLdb: aucun module nommé MySQLdb" - ont essayé des solutions déjà publiées.

C’est une question très discutée pour les utilisateurs d’OSX 10.6, mais je n’ai pas pu trouver de solution qui fonctionne. Voici ma configuration:

Python 2.6.1 64bit Django 1.2.1 MySQL 5.1.47 osx10.6 64bit

Je crée un virtualenvwrapper avec --no-site-packages, puis j'ai installé Django. Lorsque j'active virtualenv et exécute python manage.py syncdb, j'obtiens cette erreur:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 257, in fetch_command
  klass = load_command_class(app_name, subcommand)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 67, in load_command_class
  module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/commands/syncdb.py", line 7, in <module>
from Django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/sql.py", line 5, in <module>
from Django.contrib.contenttypes import generic
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/contrib/contenttypes/generic.py", line 6, in <module>
  from Django.db import connection
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/__init__.py", line 75, in <module>
  connection = connections[DEFAULT_DB_ALIAS]
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/utils.py", line 91, in __getitem__
  backend = load_backend(db['ENGINE'])
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/utils.py", line 32, in load_backend
  return import_module('.base', backend_name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/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 MySQLdb

J'ai également installé le MySQL pour Python adaptateur, mais en vain (peut-être que je ne l'ai pas installé correctement?). 

Quelqu'un a déjà traité ça?

252
Joe

Ce problème était dû à une installation incomplète/incorrecte de l'adaptateur MySQL pour Python. Plus précisément, j'ai dû modifier le chemin d'accès au fichier mysql_config pour qu'il pointe vers/usr/local/mysql/bin/mysql_config - décrit plus en détail dans cet article: http://dakrauth.com/blog/entry/python- et-Django-setup-mac-os-x-leopard/

7
Joe

J'ai eu la même erreur et pip install MySQL-python l'a résolu pour moi.

Autres installations:

  • Si vous n'avez pas pip, easy_install MySQL-python devrait fonctionner.
  • Si votre python est géré par un système de packaging, vous devrez peut-être utiliser Ce système (par exemple, Sudo apt-get install ...)

Soli note ci-dessous que si le message d'erreur suivant s'affiche:

EnvironmentError: mysql_config not found

... alors vous avez un autre problème de dépendance du système. La résolution de ce problème variera d’un système à l’autre, mais pour les systèmes dérivés de Debian:

Sudo apt-get install python-mysqldb

329
Clint

Sous Ubuntu, je devais faire:

Sudo apt-get install python-mysqldb
61
kottin

Ajoutant d’autres réponses, les éléments suivants m’ont aidé à terminer l’installation de mysql-python:

virtualenv, mysql-python, pip: quelqu'un sait comment?

Sur Ubuntu ...

apt-get install libmysqlclient-dev
apt-get install python-dev
pip install mysql-python

N'oubliez pas d'ajouter «Sudo» au début des commandes si vous ne disposez pas des autorisations appropriées.

57
MrOodles

Essayez ceci les commandes ci-dessous. Ils travaillent pour moi:

brew install mysql-connector-c 
pip install MySQL-python
22
User9527

mysql_config doit être sur le chemin. Sur Mac, faites

export PATH=$PATH:/usr/local/mysql/bin/
pip install MySQL-python
19
toucan
pip install mysql-python

a généré une erreur:

EnvironmentError: mysql_config introuvable

Sudo apt-get install python-mysqldb

résolu le problème.

14
Soli

Comment je l'ai fait fonctionner:

virtualenv -p python3.5 env/test

Après avoir acheté mon env:

pip install pymysql
pip install Django

Ensuite, j'ai lancé le projet de démarrage et dans le fichier manage.py, j'ai ajouté ceci:

+ try:
+     import pymysql
+     pymysql.install_as_MySQLdb()
+ except:
+     pass

En outre, mis à jour ces paramètres intérieurs:

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.mysql',
        'NAME': 'foobar_db',
        'USER': 'foobaruser',
        'PASSWORD': 'foobarpwd',
    }
}

J'ai aussi configparser==3.5.0 installé dans mon virtualenv, je ne sais pas si cela était nécessaire ou non ...

J'espère que ça aide, 

10
Douglas

Essayez ceci: cela a résolu le problème pour moi.

pip installer MySQL-python

8
errakeshpd

Ce qui suit a parfaitement fonctionné pour moi, sous Ubuntu 13.10 64-bit:

Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev

Maintenant, accédez à votre virtualenv (tel que le dossier env) et exécutez les opérations suivantes:

Sudo ./bin/pip install mysql-python

J'ai effectivement trouvé la solution dans une question distincte que je cite ci-dessous:

Si vous avez créé virtualenv avec le commutateur --no-site-packages (valeur par défaut), puis des ajouts installés à l’échelle du système, tels que MySQLdb ne sont pas inclus dans les packages d'environnement virtuel.

Vous devez installer MySQLdb avec la commande pip installée avec le fichier virtualenv. Activez virtualenv avec bin/activate script ou utilisez bin/pip à partir de virtualenv pour installer le fichier Bibliothèque MySQLdb localement aussi.

Vous pouvez également créer un nouveau virtualenv avec les packages de site système inclus à l'aide du commutateur --system-site-package.

Je pense que cela devrait également fonctionner avec OSX. Le seul problème serait d’obtenir une commande équivalente pour installer libmysqlclient-dev et python-dev car ils sont nécessaires pour compiler mysql-python Je suppose.

J'espère que cela t'aides.

8
Rafay

Sudo apt-get install python-mysqldb fonctionne parfaitement à Ubuntu

pip install mysql-python déclenche une Erreur d'environnement

7
Maurice Elagu

Cela a fonctionné pour la version 6.4 de Red Hat Enterprise Linux Server

Sudo yum install mysql-devel
Sudo yum install python-devel
pip install mysql-python
5
Rohit Alekar

Vous pouvez installer en tant que pip install mysqlclient

4
Sirajus Salayhin

J'ai effectué la mise à niveau vers OSX Mavericks et Pycharm 3 et commence à obtenir cette erreur. 

la commande '/ usr/bin/clang' a échoué avec le statut de sortie 1.

J'ai donc besoin de mettre à jour vers Xcode 5 et d'essayer à nouveau d'installer à l'aide de pip.

pip install mysql-python

Cela règle tous les problèmes.

3
unixeO

pip n'a pas fonctionné pour moi sur le système Windows 8 64 bits. easy_install mysql-python fonctionne pour moi . Vous pouvez utiliser easy_install pour éviter la construction de binaires sur Windows si pip ne fonctionne pas. 

2
kta

L'erreur soulevée ici est lors de l'importation du module python. Pour résoudre ce problème, ajoutez le dossier python site-packages à la variable d'environnement $ PYTHONPATH sous OS X. Nous pouvons donc ajouter la commande suivante au fichier .bash_profile:

export PYTHONPATH="$PYTHONPATH:/usr/local/lib/pythonx.x/site-packages/"

* remplacez x.x par la version de python que vous utilisez

2
Arun Reddy

Si vous utilisez python3, essayez ceci (Mon système d'exploitation est Ubuntu 16.04):

Sudo apt-get install python3-mysqldb
2
Dillion Wang

J'ai eu le même problème sur OSX 10.6.6. Mais un simple easy_install mysql-python sur le terminal ne le résout pas, un autre hoquet suit:

error: command 'gcc-4.2' failed with exit status 1

Apparemment, ce problème se pose après la mise à niveau de XCode3 (livré nativement avec OSX 10.6) vers XCode4. Cette nouvelle version supprime la prise en charge de la construction de ppc Arch. Si c'est le même cas, essayez de procéder comme suit avant easy_install mysql-python

Sudo bash
export ARCHFLAGS='-Arch i386 -Arch x86_64'
rm -r build
python setup.py build
python setup.py install

Merci beaucoup à Ned Deily pour cette solution. Vérifier ici

1
jerrymouse

J'ai surmonté le même problème en installantMySQL-pythonlibrary en utilisant pip . Vous pouvez voir le message affiché sur ma console lorsque j'ai modifié mes paramètres de base de données pour la première fois dans les commandes settings.py et makemigrations exécutées (la solution suit le message ci-dessous, voyez-le seulement).

  (vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/core/management/__init__.py", line 312, in execute
    Django.setup()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/models/base.py", line 139, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/models/options.py", line 250, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 27, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Enfin j'ai résolu ce problème comme suit:

(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQLdb
Collecting MySQLdb
  Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb
(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQL-python
Collecting MySQL-python
  Downloading MySQL-python-1.2.5.Zip (108kB)
    100% |████████████████████████████████| 112kB 364kB/s 
Building wheels for collected packages: MySQL-python
  Running setup.py bdist_wheel for MySQL-python ... done
  Stored in directory: /Users/admin/Library/Caches/pip/wheels/38/a3/89/ec87e092cfb38450fc91a62562055231deb0049a029054dc62
Successfully built MySQL-python
Installing collected packages: MySQL-python
Successfully installed MySQL-python-1.2.5
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
No changes detected
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, rest_framework, messages, crispy_forms
  Apply all migrations: admin, contenttypes, sessions, auth, PyApp
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying PyApp.0001_initial... OK
  Applying PyApp.0002_auto_20170310_0936... OK
  Applying PyApp.0003_auto_20170310_0953... OK
  Applying PyApp.0004_auto_20170310_0954... OK
  Applying PyApp.0005_auto_20170311_0619... OK
  Applying PyApp.0006_auto_20170311_0622... OK
  Applying PyApp.0007_loraevksensor... OK
  Applying PyApp.0008_auto_20170315_0752... OK
  Applying PyApp.0009_auto_20170315_0753... OK
  Applying PyApp.0010_auto_20170315_0806... OK
  Applying PyApp.0011_auto_20170315_0814... OK
  Applying PyApp.0012_auto_20170315_0820... OK
  Applying PyApp.0013_auto_20170315_0822... OK
  Applying PyApp.0014_auto_20170315_0907... OK
  Applying PyApp.0015_auto_20170315_1041... OK
  Applying PyApp.0016_auto_20170315_1355... OK
  Applying PyApp.0017_auto_20170315_1401... OK
  Applying PyApp.0018_auto_20170331_1348... OK
  Applying PyApp.0019_auto_20170331_1349... OK
  Applying PyApp.0020_auto_20170331_1350... OK
  Applying PyApp.0021_auto_20170331_1458... OK
  Applying PyApp.0022_delete_postoffice... OK
  Applying PyApp.0023_posoffice... OK
  Applying PyApp.0024_auto_20170331_1504... OK
  Applying PyApp.0025_auto_20170331_1511... OK
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK
(vir_env) admins-MacBook-Pro-3:src admin$ 
0
hygull

Exécuter cette commande  

Sudo pip install mysql-python;

Maintenant, vous pouvez exécuter votre commande.

python manage.py startapp filename;
0
Siddharth Shukla

Installer les outils de ligne de commande fonctionne pour moi:

xcode-select --install
0
Giovanni Benussi

Pour moi, le problème a été résolu en réinstallant simplement mysql-python

pip uninstall mysql-python
pip install mysql-python
0
Özer S.

J'ai rencontré des situations similaires à la vôtre, telles que j'utilise python3.7 et Django 2.1 dans virtualenv sur mac osx. Essayez de lancer la commande:

pip install mysql-python
pip install pymysql

Et éditez le fichier __init__.py dans votre dossier de projet et ajoutez ce qui suit:

import pymysql

pymysql.install_as_MySQLdb()

Puis exécutez: python3 manage.py runserver Ou python manage.py runserver

0
Fred