【问题标题】:Python 2.7 and MySQLDB: Image not found (OSX)Python 2.7 和 MySQLDB:找不到图像 (OSX)
【发布时间】:2015-02-24 12:37:54
【问题描述】:

我刚刚在我的 10.10.1 MAC 上安装了 MySQL,我正在尝试将它链接到 Python。但是,当我尝试导入包时出现此错误。

  import MySQLdb as mdb
  File "build/bdist.macosx-10.5-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>

  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.5-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/ME/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/ME/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.5-x86_64.egg-tmp/_mysql.so
  Reason: image not found
[Finished in 0.2s with exit code 1]

我不知道“找不到图片”是什么意思,也不知道如何解决。

MySQL在后台连接到服务器,我通过终端窗口安装包使用:easy_install MySQL-python

对我哪里出错有什么建议吗?

【问题讨论】:

    标签: python mysql macos python-2.7


    【解决方案1】:

    问题的解决方法可以在这个链接Python: MySQLdb and "Library not loaded: libmysqlclient.16.dylib"找到

    _mysql.so 指的是 libmysqlclient.16.dylib。即作为Python和MySQL客户端库的桥梁的共享库_mysql.so是指MySQL客户端库的动态库,由于某种原因无法加载该库。

    您需要回答的问题:

    • 您的系统上是否有 libmysqlclient.16.dylib?如果没有,则需要安装 MySQL 客户端软件。

    • 如果是这样,您的 DYLD_LIBRARY_PATH 设置中是否包含该库的目录?如果没有,请尝试添加它。

    • 如果是这样,您必须确保 libmysqlclient.16.dylib 文件没有损坏。我的副本安装在 /opt/local/lib/mysql5/mysql/libmysqlclient.16.dylib 中,由 MacPorts 提供,具有 MD5 签名 c79ee91af08057dfc269ee212915801a,大小为 1,462,376 字节。你的文案是什么样的?

    【讨论】:

    • 谢谢!我会看看这个,然后给你答复。
    【解决方案2】:

    检查您的_mysql.so 链接到的位置:

    otool -L /Library/Python/2.7/site-packages/_mysql.so
    

    在我的例子中,我在/tmp/ 中构建了 mysql 源代码,并且有一次 tmp 清理了我的 dylib 走了。我从未重新链接到 可靠的位置,例如 /Applications/MAMP/Library/lib 在哪里 我的 mysql 库已经上线(因为我在构建后将它们复制到这里)。

    所以我回去重建一切,并确保运行命令 更新包链接到正确的dylib:

    sudo install_name_tool -change <temp file location>/mysql-5.5.29/libmysql/libmysqlclient.18.dylib /Applications/MAMP/Library//lib/libmysqlclient.18.dylib /Library/Python/2.7/site-packages/_mysql.so
    

    我按照此处找到的设置进行操作: http://dreamconception.com/tech/how-to-install-mysqldb-mysql-python-on-mamp/

    注意:我不需要执行有关更改 configure.cmake 的步骤 文件。当我查看configure.cmake 文件时,我觉得这很有意义,所以我跑了 它按原样工作。

    还请注意您的 libmysqlclient.&lt;num&gt;.dylib 可能有所不同,所以 做一个find . -name "libmysqlclient.*.dylib" 得到正确的

    现在重新运行otool 命令并查看链接是否已更新。

    参考资料(和其他解决方案):

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 2012-11-06
      • 2011-08-23
      • 2013-04-21
      • 2017-09-13
      • 1970-01-01
      • 2011-03-15
      • 2014-07-17
      • 1970-01-01
      相关资源
      最近更新 更多