Python 在雪豹上安装MySQLdb

Python 在雪豹上安装MySQLdb,python,mysql,django,Python,Mysql,Django,我在雪豹上安装MySQLdb(1.2.2)时遇到了各种各样的麻烦。我正在运行python 2.5.1和MySQL 5.1 32位 Python和MySQL运行得很好 我还安装了django 1.2.1,虽然我认为这并不重要,但我想介绍一下我要安装的堆栈。我使用的是Python2.5.x,因为我的Web主机只有该版本作为选项,我希望尽可能接近我的生产环境 无论如何 在阅读了许多提到修改_mysql.c和setup_posix.py等的现有文章和教程之后,我仍然遇到了麻烦 这是我的堆栈跟踪: xxx

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

Python和MySQL运行得很好

我还安装了django 1.2.1,虽然我认为这并不重要,但我想介绍一下我要安装的堆栈。我使用的是Python2.5.x,因为我的Web主机只有该版本作为选项,我希望尽可能接近我的生产环境

无论如何

在阅读了许多提到修改_mysql.c和setup_posix.py等的现有文章和教程之后,我仍然遇到了麻烦

这是我的堆栈跟踪:

xxxxxxx-mbp:MySQL-python-1.2.2 xxxxxxx$sudo ARCHFLAGS=“-arch x86_64”python setup.py build 运行构建 运行build\u py 创建构建 创建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/converters.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/constants 正在复制MySQLdb/constants/ER.py->build/lib.macosx-10.3-i386-2.5/MySQLdb/constants 正在复制MySQLdb/constants/FLAG.py->build/lib.macosx-10.3-i386-2.5/MySQLdb/constants 正在复制MySQLdb/constants/REFRESH.py->build/lib.macosx-10.3-i386-2.5/MySQLdb/constants 正在复制MySQLdb/constants/CLIENT.py->build/lib.macosx-10.3-i386-2.5/MySQLdb/constants 运行build_ext 正在生成“\u mysql”扩展 创建构建/临时macosx-10.3-i386-2.5 gcc-isysroot/Developer/SDKs/MacOSX10.4u.sdk-fno严格别名-Wno-long-double-no-cpp-precomp-mno-fused-madd-fno-common-dynamic-DNDEBUG-g-O3-Dversion_-info=(1,2,2,'final',0)-D_uuuversion_uuuuu=1.2.2-I/usr/local/mysql-5.1.48-osx10.6-x86/include-I/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5-c-o build/temp.macosx-10.3-i386-cx2.5/mysql.o-g-Os-arch i386-fno common-D_P1003_1B\u可见-DSIGNAL\u带有VIO关闭的信号\u关闭-信号\emdals\u不读取\emdash-sigu\n\n\n\emdash-sigu 在/Developer/SDKs/MacOSX10.4u.sdk/usr/include/wchar.h:112中包含的文件中, 来自/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/unicodeobject.h:118, 从/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:83, 来自pymemcompat.h:10, from_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”已重新定义 在/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/Python.h:8中包含的文件中, 来自pymemcompat.h:10, from_mysql.c:29: /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/pyconfig.h:724:1:警告:这是前面定义的位置 错误:命令“gcc”失败,退出状态为1


有人有什么想法吗?

我通常用MacPorts安装这样的软件包。它是一款软件包管理软件,为您处理所有下载、配置和安装过程。这就像是在gentoo上出现或是在debian上出现一样

确保已安装Xcode,并且已安装。安装好后,启动终端并通过键入以下内容安装mysql:

$ sudo port install mysql5-server

我花了好几天的时间试图解决这个问题,最后还是放弃了

我转到了博士后。它在《雪豹》中与django合作得很好, 有一个小问题。由于某些原因,未分配auto_inc pk ID 对一些模特来说。我通过随机分配一个来自大型数据库的id来解决这个问题 随机范围,并依靠唯一的列名称来防止碰撞

我的生产服务器是linux。Mysql和postgres在上面安装得很好

事实上,#django irc频道的许多人建议运行虚拟linux
在mac上运行一个实例来解决我的mysql安装问题。

对于最初的问题来说已经晚了,但如果其他人(如我)遇到缺少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
以下博文救了我的命:

总结关键点:

openup/Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h

更换线路:

#include_next <stdarg.h>

你可能想试一试。卸载现有的MySQL安装,然后执行sudo端口安装mysql5服务器devel python25 py25 MySQL。它将告诉您如何在安装结束时设置新的MySQL服务器。您还需要确保您使用的是MacPorts Python安装,而不是系统安装(您可以使用Python select)。不过,我担心这听起来可能有点矫揉造作!我确实认为这是最好的计划,特别是因为Web服务器可能运行Linux。
#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