这里是我对这个问题的漫游经验的故事。愿意看到它编辑或一般化,如果你有更好的经验的问题…适用一点的魔法。
注意:下一段的注释适用于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上。
第2步:
解压缩您下载的软件包:
tar xzvf MySQL-python-1.2.2.tar.gz
步骤3:
在文件夹内,清洁包装:
sudo python setup.py clean
步骤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目录和错误应该消失。
正如我在顶部写的,我很想看到这个回答泛化,因为有很多其他具体的经验,这个可怕的问题。编辑离开,或提供自己的,更好的答案。