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

2 投票
2 回答
3173 浏览
提问于 2025-04-15 17:02

我在我的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$ 

我尝试过的事情

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

然后我又看了这个博客文章: http://blog.some-abstract-type.com/2009/09/mysql-python-and-mac-os-x-106-snow.html。我尝试用ARCHFLAGS设置进行编译,但还是没有成功。

请帮帮我

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

非常感谢

本...

2 个回答

1

这段代码

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

是在做什么的呢?

1

首先,我建议你使用适合MacOS 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

这样的话,作为普通用户来编译,然后以管理员身份安装。(最好先删除源文件,然后重新解压并正确设置site.cfg文件)。

撰写回答