繁体   English   中英

在Snow Leopard上安装MySQLdb

[英]Installing MySQLdb on Snow Leopard

尝试在雪豹上安装MySQLdb(1.2.2)时遇到各种麻烦。 我正在运行python 2.5.1和MySQL 5.1 32bit。

Python和MySQL运行正常。

我还安装了django 1.2.1,尽管我认为那并不是很重要,但是我想对我要安装的堆栈有所了解。 我正在使用python 2.5.x,因为我的虚拟主机只有该版本作为选项,我希望尽可能地接近我的生产环境。

无论如何...

在关注了许多现有的文章和教程之后,这些文章和教程都提到了修改_mysql.c和setup_posix.py等,但我仍然遇到麻烦。

这是我的堆栈跟踪:

xxxxxxx-mbp:MySQL-python-1.2.2 xxxxxxx $ sudo ARCHFLAGS =“-arch x86_64” python setup.py build running build running build_py创建build创建build / lib.macosx-10.3-i386-2.5复制_mysql_exceptions.py-> build / lib.macosx-10.3-i386-2.5创建build / lib.macosx-10.3-i386-2.5 / MySQLdb复制MySQLdb / init .py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb复制MySQLdb /转换器.py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb复制MySQLdb / connections.py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb复制MySQLdb / cursors.py-> build / lib。 macosx-10.3-i386-2.5 / MySQLdb复制MySQLdb / release.py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb复制MySQLdb / times.py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb创建build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants复制MySQLdb / constants / init .py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants复制MySQLdb / constants / CR.py -> build / lib.macosx-10.3-i386-2.5 / MySQLdb / constants复制MySQLdb / constants / FIELD_TYPE.py-> build / lib.macosx-10。 3-i386-2.5 / MySQLdb /常数复制MySQLdb / constants / ER.py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb /常数复制MySQLdb / constants / FLAG.py-> build / lib.macosx- 10.3-i386-2.5 / MySQLdb /常数复制MySQLdb / constants / REFRESH.py-> build / lib.macosx-10.3-i386-2.5 / MySQLdb /常数复制MySQLdb / constants / CLIENT.py-> build / lib.macosx-运行build_ext的10.3-i386-2.5 / MySQLdb /常量,构建``_mysql''扩展,创建build / temp.macosx-10.3-i386-2.5 gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-长双精度-no-cpp-precomp -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -O3 -Dversion_info =(1,2,2,'final',0)-D__version __ = 1.2.2- I / usr /本地/mysql-5.1.48-osx10.6-x86/include -I / Library / Frameworks / Python.framework / Versions / 2.5 / include / python2.5 -c _mysql.c -o build / temp。 macosx-10.3-i386-2.5 / _mysql.o -g -Os -arch i386 -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL 来自/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/unicodeobject.h:118的/Developer/SDKs/MacOSX10.4u.sdk/usr/include/wchar.h:112中包含的文件,来自/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:83,来自pymemcompat.h:10,来自_mysql.c:29:/Developer/SDKs/MacOSX10.4u.sdk /usr/include/stdarg.h:4:25:错误:stdarg.h:_mysql.c:35包含的文件中没有这样的文件或目录:/usr/local/mysql-5.1.48-osx10.6-x86 /include/my_config.h:1062:1:警告:“ HAVE_WCSCOLL”已重新定义在pymemcompat.h的/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:8包含的文件中:10,来自_mysql.c:29:/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/pyconfig.h:724:1:警告:这是先前定义错误的位置:命令'gcc'失败,退出状态为1

有人有什么想法吗?

最初的问题还不算太晚,但是如果其他人(例如我)遇到了丢失的stdarg.h的奥秘,请参见下文。 我正在使用MacOS X 10.7.3,MySQL 5.5.20,Python 2.7.2,MySQL-python-1.2.3。

我的错误讯息:

/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory

以下博客文章救了我: http : //packetcloud.net/2009/09/22/installing-mysql-python-module-for-python-262-on-snow-leopard-using-xcode/

总结关键点:

打开/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h

替换行:

#include_next <stdarg.h>

附:

#include_next </Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/stdarg.h>

然后,事情顺利进行:

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

我通常使用MacPorts安装类似的软件包。 它是软件包管理软件,可为您处理所有下载,配置和安装。 就像在gentoo上出现或在debian上apt-get一样。

确保已安装Xcode并安装macports 安装完成后,启动终端并通过键入以下命令安装mysql:

$ sudo port install mysql5-server

我自己尝试解决了这一天,最后放弃了。

我切换到postgres。 它与django在雪豹上的搭配效果很好,但有一个小问题。 由于某些原因,不会将auto_inc pk ID分配给某些模型。 我通过从较大的随机范围中随机分配一个id并依靠唯一的列名称来防止冲突来解决了该问题。

我的生产服务器是linux。 Mysql和postgres可以很好地安装。

实际上,许多#django irc频道建议在Mac上运行虚拟linux实例,以解决我的mysql安装问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM