我刚刚在我的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]
我不知道&#34;没有找到图片&#34;意味着或如何解决这个问题。
MySQL在后台连接到服务器,我使用以下命令通过终端窗口安装了包:easy_install MySQL-python
关于我哪里出错的任何建议?
答案 0 :(得分:3)
检查_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.<num>.dylib
可能会有所不同
做find . -name "libmysqlclient.*.dylib"
以获得正确的
现在重新运行otool
命令,看看链接是否已更新。
参考文献(和其他解决方案):
答案 1 :(得分: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字节。你的副本是什么样的?