【问题标题】:Python, Brew, and MySQLdbPython、Brew 和 MySQLdb
【发布时间】:2011-11-14 13:38:43
【问题描述】:

我一直在通过 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

有什么见解吗?非常感谢。

【问题讨论】:

  • 听起来你正在以某种方式混合原生 OSX Python 和 Brew Python。准确的安装命令和输出将有助于解决这个问题。
  • 我想我也是。 mysql_python 的安装命令非常基础,只做 python setup.py build; python setup.py 安装。好像egg的安装是到python2.7的,但是python控制台是从brew的dir打开的。关于如何解开这种混淆的任何想法?
  • 您安装 python setup.py 时是使用 OSX 原生 Python 还是 Brew 构建的 Python?

标签: python mysql mysql-python homebrew


【解决方案1】:

在尝试复制您的错误时,我执行了以下操作(我假设,作为家庭酿酒师,您也这样做了)。

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 时,它是否指向您的 homebrew 安装?
2) 请记住,使用自制软件时,站点包不会存储在地窖中,它们存储在 /usr/local/lib/python2.7/site-packages 中。有关原因的更多信息,请参阅this 帖子。我不必将站点包的位置添加到我的 PATH 中,但您可以尝试一下。
3) 我建议尝试的最后一件事是为了让 easy_install 与自制的 python 一起工作,我必须将 /usr/local/share/python 添加到我的 PATH 中。

编辑
主要是一直向右滚动后重新阅读错误消息后,我注意到它无法加载mysql库。对该库的快速谷歌搜索表明,在 OS X 上安装 mysql 时,链接到它可能会遇到困难。尝试找到文件libmysqlclient.18.dylib 并记下它的路径。通过自制程序安装 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 安装它吗?我现在使用该设置的问题为零。

【讨论】:

  • 1.哪个python指向/usr/local/bin/python,这似乎是自制软件的符号链接。我认为这是正确的一个原因是错误表明控制台正在查看 Cellar 站点包。 2. Cellar 目录 /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages 里面有 MySQL_python egg(就像 /usr/local/.../p2.7/ sp dir 确实) 3. /usr/local/share/python 已经在我的路径中
  • 从哪里运行“python setup.py install”有关系吗?
  • @user592419:这是我猜到的。我以为它在调用 brewed python,如果不是,我敢肯定你会有很多其他问题。
  • @user592419:只要 setup.py 没有做任何异常 - 不会。一般来说,创建 setup.py 的 dist_tools 已完成,它会将所有内容安装在执行者(由 which python 找到)站点包。重新阅读错误消息后,我认为这实际上可能是 mysql 的问题,而不是 homebrew / python 的问题。
  • @user592419:查看我的编辑。我可能已经为您找到了一些有用的信息。
猜你喜欢
  • 1970-01-01
  • 2015-01-20
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 2013-12-26
  • 2013-01-30
  • 2011-09-30
相关资源
最近更新 更多