2014-12-27 139 views
1

我刚刚在我的10.10.1 MAC上安装了MySQL,我试图将它链接到Python。但是,当我试图导入包时,出现此错误。Python 2.7和MySQLDB:找不到图像(OSX)

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

在哪里出了问题有什么建议?

回答

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字节。你的副本是什么样的?
+0

谢谢!我会看看这个,回答你的问题。 – Chef1075 2014-12-28 14:35:24

1

检查您_mysql.so被链接到:

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

在我来说,我构建的MySQL源/tmp/,一旦 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.<num>.dylib可能是东西,所以 做一个find . -name "libmysqlclient.*.dylib"得到重新运行otool命令,并看到该链接被更新正确的

现在。

引用(和其他解决方案):