為什麼我在 El Capitan 上使用 MySQLdb 時會收到「不安全使用相對路徑」錯誤?

Mary-Kate Olsen
發布: 2024-10-24 18:56:30
原創
470 人瀏覽過

Why am I getting an

El Capitan 使用者在MySQLdb 中遇到「不安全使用相對路徑」錯誤

Django 使用者在嘗試執行python manage.py runserver 時遇到了神秘錯誤指令,收到以下訊息:

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
登入後複製

使用者已透過Pip 安裝MySQL-python 並按照建議的步驟操作,但問題仍然存在。而且,他們使用的是 El Capitan Beta 3 作業系統。

罪魁禍首:系統完整性保護

在 OS X El Capitan (10.11) 中,Apple 引入了系統完整性保護 (SIP),它可以保護系統完整性。限制 /usr 等受保護位置中的程式使用相對引用存取共用程式庫。在這種情況下,_mysql.so 共享庫包含對共享庫 libmysqlclient.18.dylib 的相對引用。

解決方案:強制絕對引用

未來更新 _mysql.so可以解決此問題,臨時解決方案包括使用 install_name_tool 實用程式強製程式庫使用絕對引用。

假設libmysqlclient.18.dylib 位於/usr/local/mysql/lib/,請執行下列指令指令:

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

此指令將修改_mysql.so 以使用libmysqlent. 18.dylib 共享庫的絕對路徑,解決「不安全使用相對路徑」錯誤。

以上是為什麼我在 El Capitan 上使用 MySQLdb 時會收到「不安全使用相對路徑」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板