作者:王强丫ES | 来源:互联网 | 2023-05-18 05:46
(1)出现的问题是,使用django连接mysql时出现问题,出现以下错误:raiseImproperlyConfigured("ErrorloadingMySQLdbmodule:
(1)出现的问题是,使用django连接mysql时出现问题,出现以下错误:
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.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: image not found
主要症结在这句话:Library not loaded: libmysqlclient.18.dylib。
原因:是因为一个模块libmysqlclient.18.dylib没有加载进来,而这个模块其实是已经安装了的,所以原因在于,我们安装的地方和被引用的地方不一致,所以需要在被引用的地方加一个软连接指向我们安装的地方。
——第一步:关闭sip,这个自己找教程,无非就是重启mac按住command+R进入另一种类似window安全模式的系统里,然后再终端输入csrutil disable关闭mac自带的sip功能。然后重启正常进入系统。
——使用下面命令:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
是不是很眼熟,这条命令估计你搜索这么久答案已经看过好多了吧。但是坑爹的是网上给出的答案基本都有不一样的地方,主要不一样如下:
如:http://my.oschina.net/u/943107/blog/188269里给出的解决方案是:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.lib /usr/lib/libmysqlclient.18.dylib
仔细看,发现文件最后的后缀不一样,我们的时同一个文件,这里写成了lib和dylib。
再如:https://forums.developer.apple.com/thread/7935苹果开发者论坛上给出的解决方案:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
仔细看,后面的软连接的路径是不同的,我们照搬这个的话会提示没有这个路径。
(2)结论
不能说其他人的解决方案是错误的,可能是因为具体问题不一样。希望给后来人多一个选择。这里原理其实很简单,搞明白自己才能修正。