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

我是一个Python新手,但我只是花了一天工作如何让MySQLdb正常工作,根据谷歌的宇宙包括许多参考的PITA它是什么,和过多的指南,似乎是过时。由于这个网站是为了解决这些问题,我知道我将来需要一个参考的解决方案,我要问的问题,提供我的答案,看看什么浮动到表面。

所以问题是如何让MySQLdb工作在Mac OS X上?

最佳答案
这里是我对这个问题的漫游经验的故事。愿意看到它编辑或一般化,如果你有更好的经验的问题…适用一点的魔法。

注意:下一段的注释适用于Snow Leopard,但不适用于Lion,这似乎需要64位MySQL

首先,MySQLdb的作者(仍然?)说here最有害的问题之一是OS X安装了一个32位版本的Python,但大多数平均joes(我自己包括)可能会跳转到安装64位版本的MySQL。坏的移动…删除64位版本,如果你已经安装它(在这个fiddly任务的说明可用在SO here),然后下载并安装32位版本(包here)

有关如何构建和安装MySQLdb库的众多步骤。他们经常有微妙的差异。 This似乎是我最受欢迎的,并提供了工作解决方案。我已经复制它与下面几个编辑

步骤0:
在我开始之前,我假设你有MySQL,Python和GCC安装在mac上。

步骤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-eggs下的蛋

步骤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

>>>>导入MySQLdb

步骤10:
如果尝试导入时,您收到一个错误,抱怨Library未加载:libmysqlclient.18.dylib结尾为:原因:image找不到,您需要创建一个额外的符号链接,它是:

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

然后你应该能够导入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

这是很容易谷歌,但为了节省您的麻烦,你会结束here(或者也许没有…不是一个特别是未来的URL),并弄清楚,你需要cd ..出的build目录和错误应该消失。

正如我在顶部写的,我很想看到这个回答泛化,因为有很多其他具体的经验,这个可怕的问题。编辑离开,或提供自己的,更好的答案。

转载注明原文:如何在Mac OS X上安装MySQLdb(Python数据访问库到MySQL)? - 代码日志