Rumah > pangkalan data > tutorial mysql > 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
Lepaskan: 2024-10-24 18:56:30
asal
474 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan