在Python设置脚本中移除ppc编译标志

8 投票
2 回答
1960 浏览
提问于 2025-04-15 13:18

我正在尝试在一台使用Intel处理器的Mac OS X Leopard电脑上安装PIL(Python Imaging Library)。不幸的是,"setup.py build"这个命令认为它应该为ppc架构编译。

gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -O3 -DHAVE_LIBJPEG -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -I/opt/local/include/freetype2 -IlibImaging -I/sw/include -I/opt/local/include -I/Users/adam/Development/pinax-env/include -I/usr/local/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 -c libImaging/GifEncode.c -o build/temp.macosx-10.3-i386-2.5/libImaging/GifEncode.o

这个过程失败了,因为我电脑上没有ppc架构所需的文件(而且我也不想去安装这些文件)。我该怎么告诉setup.py只编译i386架构呢?

我在/Library/Frameworks/Python.framework目录下找过配置文件,但没有找到。

2 个回答

19

对我有效的解决办法是:

在命令行中输入:ARCHFLAGS="-arch i386 -arch x86_64" python setup.py build

只需要在命令行里直接输入这些参数就可以了。

2

最简单的解决办法(对于一个或几个C文件)就是复制编译器的命令,稍微修改一下,然后手动运行这个命令,再运行setup.py,它应该会发现这一步已经完成了。

如果想让setup.py不再使用这些选项,你需要去Python的配置目录里修改Makefile,把这些选项删掉。

撰写回答