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 但我仍然无法解决这个问题。
更多信息以帮助诊断问题:
- Python 版本:Python 2.7.10 |Anaconda 2.4.0 (x86_64)| (默认,2015 年 10 月 19 日,18:31:17)
[GCC 4.2.1(Apple Inc. 内部版本 5577)]
- 'which python' 的结果:/Users/user1/anaconda/bin/python
- MySQL 安装的版本:mysql-5.7.10
- MySQL-Python版本:MySQL-python-1.2.5
我哪里错了?
经过一些研究,我认为问题可能是由于 OpenSSL 以及 El Capitan 中与此相关的权限引起的。
我找到了两个暗示类似解决方案的资源:
这里是:
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 以下对我有用。
- 关闭系统完整性保护:重启 Mac 并按住 Command + R,打开终端并输入:csrutil disable;重启
- 重启后:
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
我尝试在 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 但我仍然无法解决这个问题。
更多信息以帮助诊断问题:
- Python 版本:Python 2.7.10 |Anaconda 2.4.0 (x86_64)| (默认,2015 年 10 月 19 日,18:31:17) [GCC 4.2.1(Apple Inc. 内部版本 5577)]
- 'which python' 的结果:/Users/user1/anaconda/bin/python
- MySQL 安装的版本:mysql-5.7.10
- MySQL-Python版本:MySQL-python-1.2.5
我哪里错了?
经过一些研究,我认为问题可能是由于 OpenSSL 以及 El Capitan 中与此相关的权限引起的。 我找到了两个暗示类似解决方案的资源:
这里是:
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 以下对我有用。
- 关闭系统完整性保护:重启 Mac 并按住 Command + R,打开终端并输入:csrutil disable;重启
- 重启后: 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