Apabila menjalankan python manage.py runserver dalam Django, anda mungkin menghadapi ralat 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
Puncanya
Ralat ini berlaku disebabkan oleh pelaksanaan Perlindungan Integriti Sistem oleh Apple dalam OS X El Capitan (10.11). Ini menghalang program di lokasi yang dilindungi seperti /usr daripada mengakses perpustakaan kongsi menggunakan rujukan relatif.
Dalam kes ini, perpustakaan kongsi _mysql.so mengandungi rujukan relatif kepada libmysqlclient.18.dylib.
Penyelesaian
Untuk menyelesaikan isu ini, anda perlu memaksa _mysql.so untuk menggunakan rujukan mutlak kepada libmysqlclient.18.dylib. Ini boleh dicapai menggunakan utiliti install_name_tool.
Langkah-Langkah untuk Menyelesaikan Isu
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 mengemas kini rujukan perpustakaan kongsi dalam _mysql.so untuk menggunakan laluan mutlak ke libmysqlclient. 18.dylib.
Selepas menjalankan arahan ini, anda sepatutnya berjaya menjalankan python manage.py runserver tanpa ralat konfigurasi MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'ImproperlyConfigured: Ralat memuatkan modul MySQLdb\' dalam Django pada macOS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!