如何在Mac OS X上安装MySQLdb(Python数据访问库到MySQL)?

问题:

我是一个Python新手,但我刚刚花了一天时间来研究如何使MySQLdb正常工作,而根据谷歌的宇宙包括许多关于PITA的参考资料,以及过多的指南,似乎是过时。鉴于这个网站是为了解决这些问题,而且我知道将来我将需要一个参考的解决方案,我将提出问题,提供我的答案,看看还有什么漂浮在表面。
所以问题是如何让Mac OS X上的MySQLdb工作?

回答:

这是关于这个问题的漫漫经历的故事。如果你有更好的经验的这个问题,会喜欢看到它编辑或泛化…应用一点这个魔法。
 注意:下一段的评论适用于Snow Leopard,但不适用于Lion,这似乎需要64位MySQL
首先,MySQLdb的作者(仍然?)说here,最恶毒的问题之一是OS X安装了32位版本的Python,但是大多数平均joes(包括我自己)可能跳转到安装64 MySQL版本。坏的移动…删除64位版本,如果你已经安装了(这个fiddly任务的指令可在SO here),然后下载并安装32位版本(包here
有关如何构建和安装MySQLdb库的许多分步骤。他们往往有微妙的差异。 This似乎是我最受欢迎的,并提供了工作解决方案。我已经转载了下面的几个编辑
 步骤0:
在我开始之前,我假设你在Mac上安装了MySQL,Python和GCC
 步骤1:
从SourceForge下载最新的MySQL for Python adapter
 第2步:
提取您下载的软件包:

tar xzvf MySQL-python-1.2.2.tar.gz

 步骤3:
在文件夹内,清理包装:

sudo python setup.py clean

外加步骤(来自this comment
 步骤3b:
删除MySQL-python-1.2.2 / build / *目录下的所有内容 – 不要相信“python setup.py clean”来为你做
 步骤3c:
删除用户/ $ USER / .python-egg下的蛋
 步骤4:
最初需要编辑_mysql.c,但现在不需要更长的时间。 MySQLdb社区似乎已经修复了这个bug。
 步骤5:
在lib下创建一个符号链接,指向一个名为mysql的子目录。这是在编译期间寻找的地方。

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql

 步骤6:
编辑setup_posix.py并更改以下内容
mysql_config.path =“mysql_config”

mysql_config.path =“/ usr / local / mysql / bin / mysql_config”
 步骤7:
在同一个目录中,重建包(忽略它附带的警告)

sudo python setup.py build

 步骤8:
安装包,你完成了。

sudo python setup.py install

 步骤9:
测试它是否工作。如果您可以导入MySQLdb,它将起作用。

python

>>> import MySQLdb
 步骤10:
如果尝试导入,您会收到一个错误,抱怨Library not loaded: libmysqlclient.18.dylib结尾为:Reason: image not found,您需要创建一个额外的符号链接:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

那么你应该能够import MySQLdb没有任何错误。
一个最后的打嗝虽然是如果你从构建目录启动Python,你会得到这个错误:
/Library/Python/2.5/site-packages/MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg/_mysql.py:3:UserWarning:模块_mysql已从/Library/Python/2.5/导入site-packages / MySQL_python-1.2.3c1-py2.5-macosx-10.5-i386.egg / _mysql.pyc,但是XXXX / MySQL-python-1.2.3c1被添加到sys.path
这对Google来说很容易,但为了节省您的困难,您将最终here(或者可能不是一个特别的面向未来的URL),并确定您需要cd ..从构建目录和该错误应该消失。
正如我在顶部写的那样,我很想看到这个答案一般化,因为这里有很多其他具体的这个可怕的问题的经验。编辑,或提供自己,更好的答案。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How to install MySQLdb (Python data access library to MySQL) on Mac OS X?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

96 − 91 =