【问题标题】:MySQLdb Issue with Python 2.7.6 on YosemiteYosemite 上 Python 2.7.6 的 MySQLdb 问题
【发布时间】:2015-05-24 06:00:54
【问题描述】:

我需要通过 Python 脚本连接到本地计算机上的 MySQL 数据库。这是我的设置:

  • 已安装(并已用于开发 Web 应用数月)MySQL 5.6.22(从here 下载.dmg)
  • 运行 Yosemite 附带的预装 python (2.7)
  • 已下载:MySQL-python-1.2.4b4.tar.gz 并通过终端在解压缩文件夹中运行 python setup.py install 进行安装

这是我在安装结束时得到的输出:

Installed /Library/Python/2.7/site-packages/distribute-0.6.28-py2.7.egg
Processing dependencies for distribute==0.6.28`
Finished processing dependencies for distribute==0.6.28
Processing MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg
creating /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg
Extracting MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg to /Library/Python/2.7/site-packages
Adding MySQL-python 1.2.4b4 to easy-install.pth file

Installed /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg
Processing dependencies for MySQL-python==1.2.4b4
Finished processing dependencies for MySQL-python==1.2.4b4

但是在尝试连接时,我的 py 脚本给了我这个错误:

ImportError: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so
Reason: image not found
('result', 256)

当我这样做时

$ python
>>> import MySQLdb

我得到同样的错误。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • @thavan 我已经安装了开发工具,但 pip 拒绝安装,它每次都会给我这个错误:Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. (read timeout=15)",)': /simple/pip/

标签: python mysql osx-yosemite


【解决方案1】:

首先,您应该确保您拥有libmysqlclient.18.dylib。在我的 Mac 上,它的路径是:/opt/local/lib/mysql56/mysql/libmysqlclient.18.dylib。如果没有,可能需要安装mysql5-devel来获取。

如果你有动态库,原因是_mysql.so的信息有误。可以使用otool命令查看。

otool -L /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so

它会显示这个命令告诉你的路径不是动态库的正确路径。您可以使用以下命令来修复它。

sudo install_name_tool -change libmysqlclient.18.dylib {this is the correct path for mysql dynamic library} /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so

【讨论】:

    猜你喜欢
    • 2012-09-14
    • 2015-09-02
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多