【问题标题】:Installing MySQLdb on Snow Leopard在雪豹上安装 MySQLdb
【发布时间】:2011-03-18 04:05:26
【问题描述】:

我在尝试在雪豹上安装 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 运行构建 运行 build_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 构建“_mysql”扩展 创建 build/temp.macosx-10.3-i386-2.5 gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -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/local/mysql-5.1.48-osx10.6-x86/include -I/Library/Frameworks/Python.框架/版本/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 在 /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, 从 _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, 从 _mysql.c:29: /Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/pyconfig.h:724:1:警告:这是之前定义的位置 错误:命令“gcc”失败,退出状态为 1

有人有什么想法吗?

【问题讨论】:

  • 您可能想试试MacPorts。卸载现有的 MySQL 安装,然后执行 sudo port install mysql5-server-devel python25 py25-mysql。它将告诉您如何在安装结束时设置新的 MySQL 服务器。您还需要确保您使用的是 MacPorts Python 安装而不是您的系统安装(您可以为此使用 python-select)。

标签: python mysql django


【解决方案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

【讨论】:

    【解决方案2】:

    我自己尝试了几天解决这个问题,最后放弃了。

    我切换到 postgres。它与雪豹上的 django 配合得很好, 有一个小问题。由于某种原因,auto_inc pk id 没有被分配 到一些模型。我通过从一个大的随机分配一个 id 解决了这个问题 随机范围,并依靠唯一的列名称来防止冲突。

    我的生产服务器是 linux。 Mysql 和 postgres 安装就可以了。

    事实上,#django irc 频道上的很多人都推荐运行虚拟 linux Mac 上的实例来解决我的 mysql 安装问题。

    【讨论】:

    • 我也想到了在虚拟机中简单地运行 Linux。不过,我担心这听起来可能很糟糕!我确实认为这是最好的计划,尤其是。因为网络服务器可能运行 Linux。
    【解决方案3】:

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

    确保您已安装 Xcode 和 install macports。安装完成后,启动终端并输入以下命令安装 mysql:

    $ sudo port install mysql5-server
    

    【讨论】:

      猜你喜欢
      • 2010-11-30
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多