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
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!