如何阻止setup.py尝试在MacOSX版本中包含-arch ppc?

时间:2011-05-08 22:26:39

标签: python xcode4 osx-snow-leopard setup.py

似乎Xcode4不再包含PPC作为构建选项。将setup.py用于包含C扩展的模块时,setup.py始终使用以下选项尝试构建:

gcc-4.2 ... -DMACOSX -arch i386 -arch ppc ...

此操作失败并显示错误消息

/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed
Installed assemblers are:
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386

如果我只是从失败的命令中删除-arch ppc它就可以了,我可以重新运行setup.py build继续下一步。

对于仅包含一个C扩展名的模块(如ssl),这是可以的,但对于像PIL那样构建大量扩展的内容,这是一个很大的痛苦。

有没有办法阻止setup.py在编译参数中包含-arch ppc?

1 个答案:

答案 0 :(得分:2)

或者,修复关于ppc汇编程序的Xcode 4安装。

$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin