OS X El Capitan 上的 MySQLdb 错误

Posted

技术标签:

【中文标题】OS X El Capitan 上的 MySQLdb 错误【英文标题】:Error with MySQLdb on OS X El Capitan 【发布时间】:2016-04-29 14:37:20 【问题描述】:

我尝试在 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

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

我还按照这篇文章Python mysqldb: Library not loaded: libmysqlclient.18.dylib 中针对 OSX El Capitan 的建议编辑了我的 bashprofile,但我仍然无法克服这个问题。

更多信息有助于诊断问题:

Python 版本:Python 2.7.10 |Anaconda 2.4.0 (x86_64)| (默认,2015 年 10 月 19 日,18:31:17) [GCC 4.2.1(Apple Inc. build 5577)] “哪个 python”的结果:/Users/user1/anaconda/bin/python 安装的 MySQL 版本:mysql-5.7.10 MySQL-Python 版本:MySQL-python-1.2.5

我哪里错了?

【问题讨论】:

Library not loaded: libssl.1.0.0.dylib 我按照***.com/questions/27264574/… 中的说明编辑了我的 bash 配置文件,但仍然没有解决方案。 【参考方案1】:

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

    https://***.com/a/23945292/2762934 https://github.com/phpbrew/phpbrew/issues/607

原来是这样:

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

【讨论】:

Warning: Refusing to link macOS-provided software: openssl【参考方案2】:

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

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

【讨论】:

【参考方案3】:

你可以试试:

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

【讨论】:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/ 对我有帮助 在尝试了一些其他建议来解决这个问题,同时试图让 django 在 os x 上使用 mysql 之后,这对我也有用

以上是关于OS X El Capitan 上的 MySQLdb 错误的主要内容,如果未能解决你的问题,请参考以下文章

制作 Mac OS X El Capitan 的U盘引导安装

OS X 10.11 El Capitan 上的蓝牙低功耗延迟/延迟

OS X El Capitan 上的 Angular 2 教程在浏览器中返回“Cannot GET /”

OS X El Capitan 上的 MySQL 5.7.9:错误服务器退出而不更新 PID 文件

NPM:在 OS X El Capitan 上的“ld: library not found for -lgcc_s.10.5”?

安装 OS X El Capitan 后,Apache 无法正常工作