Maison  >  Article  >  base de données  >  Comment résoudre l'erreur « Bibliothèque non chargée : libmysqlclient.18.dylib » dans Django sur macOS El Capitan ?

Comment résoudre l'erreur « Bibliothèque non chargée : libmysqlclient.18.dylib » dans Django sur macOS El Capitan ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-25 03:44:02603parcourir

How to Resolve

Bibliothèque non chargée : libmysqlclient.18.dylib en raison d'un chemin relatif non sécurisé

Énoncé du problème :

Lors de l'exécution de la commande "python manage.py runserver" de Django, une erreur se produit en raison d'une utilisation non sécurisée d'un chemin relatif dans "_mysql.so" lors du chargement du module MySQLdb. L'erreur se lit :

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

Résolution :

Cette erreur se produit car macOS El Capitan introduit la protection de l'intégrité du système, qui empêche les programmes d'accéder aux bibliothèques partagées à l'aide de références relatives. "_mysql.so" a une référence relative à "libmysqlclient.18.dylib", mais cela est désormais interdit.

Pour résoudre ce problème, une référence absolue doit être forcée pour "_mysql.so" à l'aide de l'outil "install_name_tool " utilitaire. Voici comment procéder :

  1. Assurez-vous que "libmysqlclient.18.dylib" se trouve dans "/usr/local/mysql/lib/".
  2. Exécutez la commande suivante dans le 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 modifie "_mysql.so" pour utiliser le chemin absolu vers "libmysqlclient.18.dylib", résolvant ainsi le problème de chemin relatif non sécurisé.

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