Rumah > Artikel > pangkalan data > Bagaimana untuk Menyelesaikan \'Perpustakaan tidak Dimuatkan: libmysqlclient.18.dylib\' Ralat dalam Django pada macOS El Capitan?
Pustaka tidak Dimuatkan: libmysqlclient.18.dylib disebabkan oleh Laluan Relatif Tidak Selamat
Pernyataan Masalah:
Apabila menjalankan arahan "python manage.py runserver" Django, ralat berlaku disebabkan penggunaan laluan relatif yang tidak selamat dalam "_mysql.so" semasa memuatkan modul MySQLdb. Ralat berbunyi:
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
Penyelesaian:
Ralat ini timbul kerana macOS El Capitan memperkenalkan Perlindungan Integriti Sistem, yang menyekat program daripada mengakses perpustakaan kongsi menggunakan rujukan relatif. "_mysql.so" mempunyai rujukan relatif kepada "libmysqlclient.18.dylib," tetapi ini kini dilarang.
Untuk menyelesaikannya, rujukan mutlak mesti dipaksa untuk "_mysql.so" menggunakan "install_name_tool" " utiliti. Begini caranya:
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 mengubah suai "_mysql.so" untuk menggunakan laluan mutlak kepada "libmysqlclient.18.dylib," dengan itu menyelesaikan isu laluan relatif yang tidak selamat.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'Perpustakaan tidak Dimuatkan: libmysqlclient.18.dylib\' Ralat dalam Django pada macOS El Capitan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!