Python,Brew和MySQLdb

时间:2011-09-10 22:51:36

标签: python mysql mysql-python homebrew

我一直在使用brew安装运行python。我使用安装工具安装了mysql_python egg(根据mysql_python说明进行标准安装),并将其安装到/usr/local/lib/python2.7/site-packages/。已处理依赖项等。

然后我去运行python控制台。我可以导入其他东西(例如import django; print django.VERSION),但是当我导入MySQLdb时,我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so
  Reason: image not found

有什么见解?非常感谢。

1 个答案:

答案 0 :(得分:15)

在尝试复制错误时,我做了以下操作(我假设,作为一名家庭主妇,你也做了同样的事情。)

1)brew install python安装Python 2.7
2)brew install mysql将mysql安装到系统中(各种驱动程序需要)
3)根据自制软件的建议配置mysql 4)下载mysql_python并解压缩 5)使用python setup.py install安装mysql_python 6)在交互式会话pythonimport _mysql

中对其进行测试

在Lion上执行这些步骤后,我无法重现您的错误。现在......开始调试你的问题。

要检查的一些事项:
1)当您键入which python时,在终端中是否指向您的自制软件安装? 2)请记住,使用自制软件时,网站包不存储在酒窖中,它们存储在/usr/local/lib/python2.7/site-packages中。有关原因的详细信息,请参阅this帖子。我没有必要将网站包的位置添加到我的PATH中,但您可以尝试一下 3)我可以建议尝试的最后一件事是为了让easy_install与homebrew的python一起使用,我必须将/ usr / local / share / python添加到我的PATH。

修改
重新读取错误消息后,主要是向右滚动后,我注意到它无法加载一个mysql库。对该库进行快速谷歌搜索似乎在OS X上安装mysql时可能会遇到困难。尝试找到文件libmysqlclient.18.dylib并记下它的路径。通过homebrew安装mysql后,我的是:/usr/local/Cellar/mysql/5.5.14/lib。我见过的常见修复修复了环境变量DYLD_LIBRARY_PATH。有关详细信息,请查看this网站。以我的路径为例,我将此行添加到我的.bash_profile

export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/Cellar/mysql/5.5.14/lib"

如果这对您不起作用,我会强烈关注mysql未正确安装或出现问题的可能性。有了这种心态,希望你的东西会突然出现。

最后,如果你还没有任何sql数据库,我可以建议卸载mysql并通过homebrew安装吗?我现在对该设置没有任何麻烦。