在Mac Snow Leopard上安装MySQL-python-1.2.3c1时出现问题

在Mac Snow Leopard上安装MySQL-python-1.2.3c1时出现问题,python,mysql,macos,osx-snow-leopard,compilation,Python,Mysql,Macos,Osx Snow Leopard,Compilation,我在Mac OSX Snow Leopard上安装Python MySQL连接器(MySQL-Python-1.2.3c1)时遇到问题 系统状态 我已手动编译了一个已安装的: mysql-5.1.41 这似乎很好,因为我可以从命令行创建和查询数据库 我汇编了: MySQL-python-1.2.3c1 我首先在site.cfg文件中设置以下内容: mysql_config = /usr/local/mysql/bin/mysql_config 然后,我按照他们的指南构建并编译了MySQL-py

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

系统状态

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

这似乎很好,因为我可以从命令行创建和查询数据库

我汇编了: MySQL-python-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$ 
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“build/bdist.macosx-10.6-universal/egg/MySQLdb/_init__.py”,第19行,在
文件“build/bdist.macosx-10.6-universal/egg/_mysql.py”,第7行,在
文件“build/bdist.macosx-10.6-universal/egg/_mysql.py”,第6行,在引导程序中__
ImportError:dlopen(/Users/username/.python-eggs/MySQL\u python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp//u MySQL.so,2):未找到符号:\u MySQL\u受影响的行
引用自:/Users/username/.python-eggs/MySQL\u python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp//u MySQL.so
应为:平面命名空间
在/Users/username/.python-eggs/MySQL\u python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp//u MySQL.so中
mymac:username$
我尝试过的事情

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

然后我看了这篇博文:。并尝试使用ARCHFLAGS设置构建编译-但没有乐趣

请帮忙

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

非常感谢

本…

你想干什么

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

报告?

首先,我建议在MacOS X 10.5 64位(x86_64)上使用MySQL二进制文件。焦油球在MacOS X 10.6上工作

你说你用了拱旗。。但是,请像这样重试:

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

因此,以普通用户身份构建,以root用户身份安装。(最好删除源代码,然后重新解包更正site.cfg文件)。

Hi thouis它给了我以下信息:/Users/username/.python-egs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp//u MySQL.so:/usr/lib/libz.1.dylib(兼容版本1.0.0,当前版本1.2.3)/usr/libSystem.B.dylib(兼容性版本1.0.0,当前版本125.0.0)很高兴它得到了修复。事实证明,我建议的命令没有提供信息,因为libmysqlclient有一个静态库,并且_mysql.so是用“-未定义的动态_lookup”构建的这可以防止在编译时检测到缺少的符号。MySQLdb的默认生成选项似乎是使用.dylib,因此最初可能只安装了静态库。作为未来读者的注意事项:在运行setup.py build之前,通常最好完全删除生成目录。(setup.py clean可能不够,尤其是在拱门标志更改的情况下)。我刚刚删除了旧版本的MySQL-python-1.2.3c1。然后再次提取tar ball并修改了site.cfg文件。这次我把MySQL_配置注释掉了,因为它在我的$PATH中。然后我运行了上面的your命令,效果很好。非常感谢…PS我喜欢你的博客。本。。。