Maison  >  Article  >  base de données  >  Comment réparer « ImproperlyConfigured : erreur de chargement du module MySQLdb » dans Django sur macOS ?

Comment réparer « ImproperlyConfigured : erreur de chargement du module MySQLdb » dans Django sur macOS ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 07:31:29150parcourir

How to Fix

MySQL mal configuré : le problème avec les chemins relatifs

Lors de l'exécution de python manage.py runserver dans Django, vous pouvez rencontrer l'erreur suivante :

ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.7/site-packages/_mysql.so
  Reason: unsafe use of relative rpath libmysqlclient.18.dylib in /Library/Python/2.7/site-packages/_mysql.so with restricted binary

La cause

Cette erreur se produit en raison de la mise en œuvre par Apple de la protection de l'intégrité du système dans OS X El Capitan (10.11). Cela empêche les programmes situés dans des emplacements protégés comme /usr d'accéder aux bibliothèques partagées à l'aide de références relatives.

Dans ce cas, la bibliothèque partagée _mysql.so contient une référence relative à libmysqlclient.18.dylib.

La solution

Pour résoudre ce problème, vous devrez forcer _mysql.so à utiliser une référence absolue à libmysqlclient.18.dylib. Ceci peut être réalisé à l'aide de l'utilitaire install_name_tool.

Étapes pour résoudre le problème

  1. Assurez-vous que libmysqlclient.18.dylib se trouve dans /usr/local/ mysql/lib/.
  2. Exécutez la commande suivante dans Terminal :
sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so

Cette commande mettra à jour la référence de la bibliothèque partagée dans _mysql.so pour utiliser le chemin absolu vers libmysqlclient. 18.dylib.

Après avoir exécuté cette commande, vous devriez pouvoir exécuter avec succès python manage.py runserver sans l'erreur de configuration MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn