2009-12-15 138 views
2

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

系统状态

我已经手动编译安装的: 的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 

我现在测试installa重刑与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$ 

事情我ve已经试过

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

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

请帮助

如果您有任何想法,请让我知道。

非常感谢

奔...

回答

1

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

你说你用ARCHFLAGS。然而,再次尝试这样的:

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

因此建设作为普通用户,安装的根。 (最好删除源代码,并解压缩网站。再次cfg文件)。

+0

真棒,这工作,我会把我的笔记下面。 – emson 2009-12-15 15:18:40

+0

我刚刚删除了旧版本的MySQL-python-1.2.3c1。 然后再次提取焦油球并修改site.cfg文件。这一次我把mysql_config注释掉了,因为它在我的$ PATH中。 然后我运行了上面的命令,它工作正常。 非常感谢...... PS我喜欢你的博客。 Ben ... – emson 2009-12-15 15:21:46

1

什么

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

报告?

+0

嗨thouis 它给了我下面的: /Users/username/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so: \t /usr/lib/libz.1.dylib(兼容版本1.0.0,当前版本1.2.3) \t /usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本125.0.0) – emson 2009-12-15 15:06:37

+0

很高兴它已经修复。 事实证明,我提出的命令没有提供信息,因为有一个libmysqlclient的静态库,而_mysql.so是使用“-undefined dynamic_lookup”构建的,它可以防止在编译时检测到缺失的符号。 MySQLdb的默认构建选项似乎是使用.dylib,所以最初可能只安装了静态库。 作为未来读者的一个提示:在运行setup.py build之前,完全删除build目录通常是一个好主意。 (setup.py clean可能不够,特别是如果ARCH标志被改变的话)。 – 2009-12-15 17:44:17

相关问题