Rumah  >  Artikel  >  pangkalan data  >  Mengapa saya mendapat ralat \"penggunaan laluan relatif yang tidak selamat\" dengan MySQLdb pada El Capitan?

Mengapa saya mendapat ralat \"penggunaan laluan relatif yang tidak selamat\" dengan MySQLdb pada El Capitan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-24 18:56:30395semak imbas

Why am I getting an

Pengguna El Capitan Menghadapi Ralat "penggunaan laluan relatif yang tidak selamat" dengan MySQLdb

Seorang pengguna Django telah mengalami ralat misteri apabila cuba menjalankan python manage.py runserver arahan, menerima mesej berikut:

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

Pengguna telah memasang MySQL-python melalui Pip dan mengikuti langkah yang dicadangkan, tetapi isu itu berterusan. Selain itu, mereka menggunakan sistem pengendalian El Capitan Beta 3.

The Culprit: System Integrity Protection

Dalam OS X El Capitan (10.11), Apple memperkenalkan System Integrity Protection (SIP), yang mengehadkan program di lokasi yang dilindungi seperti /usr daripada mengakses perpustakaan kongsi menggunakan rujukan relatif. Dalam kes ini, perpustakaan kongsi _mysql.so termasuk rujukan relatif kepada perpustakaan kongsi libmysqlclient.18.dylib.

Penyelesaian: Memaksa Rujukan Mutlak

Sementara kemas kini masa hadapan _mysql.so boleh menyelesaikan isu ini, penyelesaian sementara melibatkan memaksa perpustakaan menggunakan rujukan mutlak menggunakan utiliti install_name_tool.

Dengan mengandaikan libmysqlclient.18.dylib terletak dalam /usr/local/mysql/lib/, laksanakan perkara berikut arahan:

sudo install_name_tool -change libmysqlclient.18.dylib \
  /usr/local/mysql/lib/libmysqlclient.18.dylib \
  /Library/Python/2.7/site-packages/_mysql.so

Arahan ini akan mengubah suai _mysql.so untuk menggunakan laluan mutlak ke pustaka kongsi libmysqlclient.18.dylib, menyelesaikan ralat "penggunaan tidak selamat laluan relatif".

Atas ialah kandungan terperinci Mengapa saya mendapat ralat \"penggunaan laluan relatif yang tidak selamat\" dengan MySQLdb pada El Capitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn