在Mac Snow Leopard上安装MySQL-python-1.2.3c1的问题

时间:2009-12-15 13:41:39

标签: python mysql macos osx-snow-leopard compilation

我在Mac OSX Snow Leopard上安装Python MySQL连接器(MySQL-python-1.2.3c1)时遇到问题。

系统状态

我手动编译了一个已安装的: 的的MySQL-5.1.41

这似乎工作正常,因为我可以从命令行创建和查询数据库。

我已编译: 的的MySQL-蟒-1.2.3c1

我首先在 site.cfg 文件中设置以下内容:

mysql_config = /usr/local/mysql/bin/mysql_config

然后我按照他们的指南构建并编译了MySQL-python-1.2.3c1:

sudo python setup.py build
sudo python setup.py install

我现在用Python测试安装:

python -c "import MySQLdb"

错误消息

然后这给了我以下错误,我对如何修复它感到难过:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "build/bdist.macosx-10.6-universal/egg/MySQLdb/__init__.py", line 19, in <module>
  File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
  Referenced from: /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so
  Expected in: flat namespace
 in /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so
mymac: username$ 

我尝试过的事情

我看过这个博客antoniocangiano.com,但它是针对MySQL-python的旧版本,并不适用。但我尝试添加它提到的软链接。

然后我查看了这篇博文:http://blog.some-abstract-type.com/2009/09/mysql-python-and-mac-os-x-106-snow.html。并尝试使用ARCHFLAGS设置进行编译 - 但没有快乐。

请帮助

如果您有任何想法,请告诉我。

非常感谢

...奔

2 个答案:

答案 0 :(得分:1)

什么是

otool -L /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so

报告?

答案 1 :(得分:1)

首先,我建议使用MacOS X 10.5 64位(x86_64)的MySQL二进制文件。 tar球适用于MacOS X 10.6。

你说你使用过ARCHFLAGS ..但是,请再试一次:

shell> ARCHFLAGS="-arch x86_64" python setup.py build
shell> sudo python setup.py install

因此构建为普通用户,以root身份安装。 (最好删除源代码,并再次解压缩更正site.cfg文件。)