OS X El Capitan 上的 MySQLdb 错误

Error with MySQLdb on OS X El Capitan

我尝试在 iPython 中导入 MySQLdb 并收到以下错误。

ImportError                               Traceback (most recent call last)
<ipython-input-4-f5538763dbdb> in <module>()
----> 1 import MySQLdb as mdb
      2 import sys

/Users/user1/anaconda/lib/python2.7/site-packages/MySQLdb/__init__.py in <module>()
     17 from MySQLdb.release import __version__, version_info, __author__
     18 
---> 19 import _mysql
     20 
     21 if version_info != _mysql.version_info:

ImportError: dlopen(/Users/user1/anaconda/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/user1/anaconda/lib/python2.7/site-packages/_mysql.so
  Reason: image not found

我在 Whosebug 上发现了一些类似性质的 post,其中建议应该禁用系统完整性保护,我现在已经这样做了。

我还按照 OSX El Capitan 的建议编辑了我的 bash 配置文件 post,Python mysqldb: Library not loaded: libmysqlclient.18.dylib 但我仍然无法解决这个问题。

更多信息以帮助诊断问题:

我哪里错了?

经过一些研究,我认为问题可能是由于 OpenSSL 以及 El Capitan 中与此相关的权限引起的。 我找到了两个暗示类似解决方案的资源:

  1. https://github.com/phpbrew/phpbrew/issues/607

这里是:

brew install --upgrade openssl
brew unlink openssl && brew link openssl --force

我遇到了同样的问题并尝试了一些方法,包括 brew install、unlink、link 解决方案,但都没有成功。对于 OS X 10.12.3 运行 Python 2.7.12,Anaconda 2.3.0 以下对我有用。

  1. 关闭系统完整性保护:重启 Mac 并按住 Command + R,打开终端并输入:csrutil disable;重启
  2. 重启后: cd /usr/local/Cellar/openssl/1.0.2k/库 sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/lib/

你可以试试:

 export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH