Maison > Article > base de données > Pourquoi est-ce que je reçois une erreur « Utilisation dangereuse du chemin relatif » avec MySQLdb sur El Capitan ?
Un utilisateur de Django a rencontré une erreur mystérieuse lors de la tentative d'exécution du serveur d'exécution python manage.py commande, recevant le message suivant :
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
L'utilisateur a installé MySQL-python via Pip et a suivi une étape suggérée, mais le problème persiste. De plus, ils utilisent le système d'exploitation El Capitan Beta 3.
Dans OS X El Capitan (10.11), Apple a introduit la protection de l'intégrité du système (SIP), qui 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 inclut une référence relative à la bibliothèque partagée libmysqlclient.18.dylib.
Lors d'une future mise à jour de _mysql.so peut résoudre ce problème, une solution temporaire consiste à forcer la bibliothèque à utiliser une référence absolue à l'aide de l'utilitaire install_name_tool.
En supposant que libmysqlclient.18.dylib se trouve dans /usr/local/mysql/lib/, exécutez ce qui suit commande :
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 modifiera _mysql.so pour utiliser le chemin absolu vers la bibliothèque partagée libmysqlclient.18.dylib, résolvant ainsi l'erreur « utilisation dangereuse du chemin relatif ».
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!