Python >> Tutoriel Python >  >> Python Tag >> MySQL

Erreur lors du chargement du module MySQLdb 'Avez-vous installé mysqlclient ou MySQL-python ?'

pip install pymysql

Ensuite, modifiez le fichier __init__.py dans le répertoire d'origine de votre projet (le même que settings.py)

ajouter :

import pymysql

pymysql.install_as_MySQLdb()

Face au même problème après la migration vers python 3. Apparemment, MySQL-python est incompatible, donc selon la documentation officielle de Django, installé mysqlclient en utilisant pip install mysqlclient sur Mac. Notez que certains problèmes spécifiques au système d'exploitation sont mentionnés dans la documentation.

Citant des documents :

Prérequis

Vous devrez peut-être installer les en-têtes et bibliothèques de développement Python et MySQL comme suit :

sudo apt-get install python-dev default-libmysqlclient-dev # Debian/Ubuntu

sudo yum install python-devel mysql-devel # Red Hat / CentOS

brew install mysql-connector-c # macOS (Homebrew) (Actuellement, il y a un bogue. Voir ci-dessous)

Sous Windows, il existe des roues binaires que vous pouvez installer sans MySQLConnector/C ou MSVC.

Remarque sur Python 3 :si vous utilisez python3, vous devez installer python3-dev à l'aide de la commande suivante :

sudo apt-get install python3-dev # debian/Ubuntu

sudo yum install python3-devel # Red Hat / CentOS

Remarque sur le bogue de MySQL Connector/C sur macOS

Voir aussi :https://bugs.mysql.com/bug.php?id=86971

Les versions de MySQL Connector/C peuvent avoir des options de configuration par défaut incorrectes qui provoquent des erreurs de compilation lorsque mysqlclient-python est installé. (Depuis novembre 2017, cela est connu pour être vrai pour le mysql-connector-c d'homebrew et package officiel)

Modification de mysql_config résout ces problèmes comme suit.

Modifier

# on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l "

à

# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

Une configuration SSL incorrecte peut également créer des problèmes ; voir, par exemple, brew info openssl pour plus de détails sur macOS.

Installer depuis PyPI

pip install mysqlclient

REMARQUE :Wheels pour Windows peut ne pas être publié avec le package source. Vous devriez épingler la version dans votre requirements.txt pour éviter d'essayer d'installer le paquet source le plus récent.

Installer depuis la source

  1. Télécharger la source par git clone ou fichier zip.
  2. Personnaliser site.cfg
  3. python setup.py install

Utilisez la commande ci-dessous pour résoudre votre problème,

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

Fonctionne sur Debian