帮助在Mac OS X下安装MySQLdb for Python

时间:2011-05-13 03:05:02

标签: python mysql macos mysql-python

我知道这已被问过好几次,但经过几个小时的尝试后,就没办法让这个工作了。

我已经从dmg文件和MySQL-python-1.2.3安装了MySQL 32位。

我关注了this steps,但是当我运行python setup.py build时,会出现这些错误:

running build
running build_py
copying MySQLdb/release.py -> build/lib.macosx-10.6-fat-2.6/MySQLdb
running build_ext
building '_mysql' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -pipe -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/local/mysql-5.5.12-osx10.6-x86/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _mysql.c -o build/temp.macosx-10.6-fat-2.6/_mysql.o -Os -g -fno-common -fno-strict-aliasing -arch i386
In file included from _mysql.c:36:
/usr/local/mysql-5.5.12-osx10.6-x86/include/my_config.h:326:1: warning: "SIZEOF_SIZE_T" redefined
In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:9,
                 from pymemcompat.h:10,
                 from _mysql.c:29:
/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pymacconfig.h:39:1: warning: this is the location of the previous definition
In file included from _mysql.c:36:
/usr/local/mysql-5.5.12-osx10.6-x86/include/my_config.h:419:1: warning: "HAVE_WCSCOLL" redefined
In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:8,
                 from pymemcompat.h:10,
                 from _mysql.c:29:
/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:803:1: warning: this is the location of the previous definition
_mysql.c:76: error: expected specifier-qualifier-list before ‘MYSQL’
_mysql.c:90: error: expected specifier-qualifier-list before ‘MYSQL_RES’
_mysql.c: In function ‘_mysql_Exception’:
_mysql.c:120: warning: implicit declaration of function ‘mysql_errno’
_mysql.c:120: error: ‘_mysql_ConnectionObject’ has no member named ‘connection’
_mysql.c:132: error: ‘ER_DB_CREATE_EXISTS’ undeclared (first use in this function)
_mysql.c:132: error: (Each undeclared identifier is reported only once

...

我很感激您提供的任何帮助。谢谢!

3 个答案:

答案 0 :(得分:6)

尝试macports

$ port search python | grep mysql
py-mysql @1.2.2 (python, devel, databases)
Python interface to mysql
py25-mysql @1.2.2 (python, devel, databases)
Python interface to mysql
py26-mysql @1.2.3 (python, devel, databases)
py27-mysql @1.2.2 (python, devel, databases)
Python interface to mysql

答案 1 :(得分:3)

我的回答对我来说适用于32位和64位Mac Snow Leopard安装(在两台不同的机器上):Installing MySQLdb for Django on Mac OS X 10.6 Snow Leopard with MAMP

简短版本:

[user]$ sudo su
[root]# ARCHFLAGS="-arch $(uname -m)" pip install mysql-python

答案 2 :(得分:2)

如果您不想处理Mac上软件包管理器的麻烦,我已详细介绍了本安装指南中的经验:http://alexandersimoes.com/journal/2011/03/04/install-mysqldb-on-mac-osx-snow-leopard/