python easy_install fails with “assembler for architecture ppc not installed” on Mac OS X

匆匆过客 提交于 2019-11-28 02:57:42

This happened for me after having upgraded to XCode 4; I haven't had time to figure out what went wrong during the upgrade (or whether this is the intended behaviour), but the following workaround works for me:

sudo env ARCHFLAGS="-arch i386" easy_install whatever

The ARCHFLAGS trick works with setup.py as well:

env ARCHFLAGS="-arch i386 -arch x86_64" python setup.py install

I found another solution here which solves the problem once and for all. It turns out XCode4 still has the ppc assembler. You just need a symlink to it in the right place:

$ 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

Fixed the problem for me with XCode4 installed on Snow Leopard.

EDIT: I tried other solutions, which worked in some cases, but invariably encountered a package that hardcoded the PPC requirement somewhere. Providing the PPC assembler got rid of all these problems once and for all.

For me, the key was the ppc assembler, not the ARCHFLAGS stuff. But, the suggestion above didn't work; I didn't have the files in those locations. But with some tinkering and poking around, I found that I did have the ppc assember at /usr/bin/as. I first tried sudo ln -s /usr/bin/as /usr/libexec/as/ppc/as, but that failed (something about could not fork process...??). So I ended up just doing sudo cp /usr/bin/as /usr/libexec/as/ppc/as, and that worked (I think I had to do some sudo mkdirs along that path, as well).

Using the system Pythons on Mac OS X 10.6, you'll need to have the gcc-4.2 from the Apple Xcode Developer Tools installed to build extension modules, like with Appscript. Other products may need the Xcode gcc-4.0 so you should install them both. They co-exist just fine.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!