MySQL Mal Configuré Raison: l'utilisation non sécuritaire de chemin relatif
Je suis l'aide de Django, et quand je lance python manage.py runserver
je reçois 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
Je ne suis pas entièrement sûr de savoir comment résoudre ce problème. J'ai installé MySQL-python via pip. Et j'ai suivi cette étape antérieure.
Je tiens également à souligner c'est avec El Capitan Beta 3.
- avez-vous eu de la chance avec la fixation de ce? Je vais avoir le même problème
- Je suis actuellement sur la Bêta 2. Mis à jour hier, mais c'est toujours un problème.
- Avez-vous suivi le lien que j'ai mis dans la question?
Vous devez vous connecter pour publier un commentaire.
Dans OS X El Capitan (10.11), Apple a ajouté Système De Protection De L'Intégrité.
Cela empêche des programmes dans des endroits protégés comme
/usr
de l'appel d'une bibliothèque partagée qui utilise une référence relative à une autre bibliothèque partagée. Dans le cas de_mysql.so
, il contient une référence relative à la bibliothèque partagéelibmysqlclient.18.dylib
.Dans l'avenir, la bibliothèque partagée
_mysql.so
peut être mis à jour. D'ici là, vous pouvez le forcer à utiliser une référence absolue via leinstall_name_tool
utilitaire.En supposant que
libmysqlclient.18.dylib
est dans /usr/local/mysql/lib/, puis exécutez la commande:Si il y a beaucoup de chemins relatifs pour être fixé pour quelque chose (comme c'est arrivé avec moi pour la bibliothèque opencv). Vous pouvez utiliser le code suivant:
Changer le ABSPATH et LIBPATHS en conséquence. Il permettra de créer des rPathChangeCmd.txt que vous pouvez coller dans le terminal. Il permettra également de créer rPathChangeErr.txt en cas d'erreur. Je suggère de vérifier le fichier d'erreur (si elle est créée) avant de coller les commandes.