"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2025-01-11
Parcourir:559

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

The 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3