首页  >  文章  >  数据库  >  如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?

如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-25 07:31:29150浏览

How to Fix

MySQL 配置不当:相对路径的问题

在 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

原因

出现此错误是由于 Apple 在 OS X El Capitan (10.11) 中实施了系统完整性保护。这可以防止 /usr 等受保护位置中的程序使用相对引用访问共享库。

在这种情况下,共享库 _mysql.so 包含对 libmysqlclient.18.dylib 的相对引用。

解决方案

要解决此问题,您需要强制 _mysql.so 使用对 libmysqlclient.18.dylib 的绝对引用。这可以使用 install_name_tool 实用程序来实现。

解决问题的步骤

  1. 确保 libmysqlclient.18.dylib 位于 /usr/local/ mysql/lib/.
  2. 在终端中运行以下命令:
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 中的共享库引用以使用 libmysqlclient 的绝对路径。 18.dylib.

运行此命令后,您应该能够成功运行 python manage.py runserver,并且不会出现 MySQL 配置错误。

以上是如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn