Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi est-ce que je reçois une erreur « Utilisation dangereuse du chemin relatif » avec MySQLdb sur El Capitan ?

Mary-Kate Olsen
Libérer: 2024-10-24 18:56:30
original
470 Les gens l'ont consulté

Why am I getting an

Un utilisateur d'El Capitan rencontre une erreur "utilisation dangereuse du chemin relatif" avec MySQLdb

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
Copier après la connexion

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.

Le coupable : la protection de l'intégrité du système

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.

Résolution : Forcer une référence absolue

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal