【问题标题】:Error with MySQLdb on OS X El CapitanOS X El Capitan 上的 MySQLdb 错误
【发布时间】: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

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

我还按照这篇文章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

我哪里错了?

【问题讨论】:

标签: python mysql macos pip mysql-python


【解决方案1】:

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

  1. https://stackoverflow.com/a/23945292/2762934
  2. 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 以下对我有用。

  1. 关闭系统完整性保护:重启Mac并按住Command + R,打开终端输入:csrutil disable;重启
  2. 重启后: 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 之后,这对我也有用
    猜你喜欢
    • 1970-01-01
    • 2017-02-17
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    相关资源
    最近更新 更多