首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MacOSX10.6雪豹上安装MySQLdb for Django

在MacOSX10.6雪豹上安装MySQLdb for Django
EN

Stack Overflow用户
提问于 2011-06-04 15:24:49
回答 1查看 3.2K关注 0票数 4

因此,我知道这不是一个新话题,但似乎没有人能够解决这个问题,至少对于Python2.6/ Snow Leopard来说是这样。(我发现的Leopard修复不适用于Snow Leopard。)

情景:我正在尝试在我的Mac OS X Snow Leopard笔记本电脑上本地安装Django。(10.6.7)我有Python 2.6.1,它是随Snow Leopard、MySQL-python 1.2.3和MAMP 1.9.6预装的。所有这些都是最新的当前版本。

在不对MySQLdb包进行任何更改的情况下,如果我运行python setup.py build,我会收到数百个或更多错误,其中第一个错误是:

代码语言:javascript
复制
$ python setup.py build
running build
running build_py
copying MySQLdb/release.py -> build/lib.macosx-10.6-universal-2.6/MySQLdb
running build_ext
building '_mysql' extension
creating build/temp.macosx-10.6-universal-2.6
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/Applications/MAMP/Library/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _mysql.c -o build/temp.macosx-10.6-universal-2.6/_mysql.o -fno-omit-frame-pointer -g
_mysql.c:36:23: error: my_config.h: No such file or directory
_mysql.c:38:19: error: mysql.h: No such file or directory
_mysql.c:39:26: error: mysqld_error.h: No such file or directory
_mysql.c:40:20: error: errmsg.h: No such file or directory
_mysql.c:76: error: expected specifier-qualifier-list before 'MYSQL'
_mysql.c:90: error: expected specifier-qualifier-list before 'MYSQL_RES'

并以:

代码语言:javascript
复制
_mysql.c:2422: error: initializer element is not constant
_mysql.c:2422: error: (near initialization for '_mysql_ResultObject_memberlist[0].offset')
_mysql.c: In function '_mysql_ConnectionObject_getattr':
_mysql.c:2444: error: '_mysql_ConnectionObject' has no member named 'open'
lipo: can't open input file: /var/folders/Br/Br8Yhf-IGVCaGfXw4TYRc++++TI/-Tmp-//ccFnIslh.out (No such file or directory)
error: command 'gcc-4.2' failed with exit status 1

所以我用mysql_config的位置更新了我的site.cfg文件:

代码语言:javascript
复制
# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
mysql_config = /Applications/MAMP/Library/bin/mysql_config

仍然是同样的错误。我在过去的两天里进行了故障排除,所以我做了一大堆其他的事情(包括ez_setup、下载.egg文件和手动更改代码中的一些选项),但它们都没有产生任何不同的结果,所以我不会在这里介绍所有的细节。一般来说,我可能遗漏了一些明显的东西,谁知道呢?(希望如此)。MySQL和MySQL都工作得很好,所以我没有做的一件事就是不通过MAMP重装Python,这也是我正在努力避免的。但如果有人有理由相信这是必要的,我会试一试。

任何帮助都将不胜感激!谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-07-28 08:16:31

我能让它像你所期望的那样工作。

有几件事:

首先,lipo: can't open input file指示先前的编译失败。安装脚本真的应该失败并显示更早的错误;我不知道为什么它们没有失败。

其次,MySQLdb从mysql_config获取所有配置信息。因此,例如,执行mysql_config --cflags会给C编译器提供标志。在我的例子中,它发出-I/usr/local/Cellar/mysql/5.5.12/include -g。在没有-arch标志的情况下,错误的架构就会成为目标。此外,链接体系结构(在此设置文件中)也是从mysql_config --cflags派生的,因此链接将指向错误的体系结构。

使用ARCHFLAGS显式设置体系结构可以做到这一点。下面的脚本假设您正在使用的MySQL和python构建与uname -m返回的机器架构相匹配;如果不匹配,请显式指定它。

代码语言:javascript
复制
[user]$ sudo su
[root]$ export ARCHFLAGS="-arch $(uname -m)" # or '-arch i386' or '-arch x86_64'
[root]$ pip install mysql-python
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6235408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档