2011-12-20 71 views
5

我想运行python的ndimage来做一些图像分析。我有一个运行OSX Lion和Python 2.7的64位Mac。当我试图从ndimage命令运行命令时,发现我需要安装PIL。在OS X Lion上安装PIL(完整的noob)

我下载并解压缩它(现在进入下载文件夹,有没有更好的地方做它?)。我运行setup.py,并得到这些消息:

running install 
running build 
running build_py 
running build_ext 
--- using frameworks at /System/Library/Frameworks 
building '_imaging' extension 
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/Library/Frameworks/Python.framework/Versions/2.7/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.6-intel-2.7/_imaging.o 
unable to execute gcc-4.2: No such file or directory 
error: command 'gcc-4.2' failed with exit status 1 

我读Failed to build PIL on Mac OS X 10.7 Lion,并确保我有蟒蛇装2.7的32/64位版本(Mac OS X的64位/ 32位的x86-64/i386安装程序(2.7.2)适用于Mac OS X 10.6和10.7)。我也安装了Xcode。我在这里做一些愚蠢的事吗?

编辑1: 看得更远,我发现这个gcc-4.2 failed with exit status 1。我试着进入这个时候我得到的错误:

llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/Library/Frameworks/Python.framework/Versions/2.7/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.6-intel-2.7/_imaging.o 

和我得到的消息:

_imaging.c:3017: warning: initialization from incompatible pointer type 
_imaging.c:3077: warning: initialization from incompatible pointer type 
_imaging.c:3017: warning: initialization from incompatible pointer type 
_imaging.c:3077: warning: initialization from incompatible pointer type 

编辑2: 我不知道这是正确的方式走了,但我发现一个post on installing pil on OSX Leopard,并按照其意见,摆脱了命令的-arch i386部分并进入:

llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -isysroot /Developer/SDKs/MacOSX10.6.sdk -arch x86_64 -g -O2 -DNDEBUG -g -O3 -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/Library/Frameworks/Python.framework/Versions/2.7/include -I/usr/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.6-intel-2.7/_imaging.o 

我现在只得到了两个错误:

_imaging.c:3017: warning: initialization from incompatible pointer type 
_imaging.c:3077: warning: initialization from incompatible pointer type 

从我可以在这一点上节目poops并没有完成编译出来。任何人都可以帮我从这里带走吗?

+0

你创建喜欢谁张贴了关于GCC用户一个符号链接? – 2011-12-20 19:44:57

+0

感谢您的回复。我试着去开发文件夹,然后输入 'ln -s llvm-gcc-4.2 gcc-4.2' 如果这就是你的意思 – user1108470 2011-12-20 19:50:37

+0

使用back-quote转义(尽管我不认为它会给你换行符注释)。我无法访问Mac,所以我只是在进行有根据的猜测。那么现在编译再次死亡? – 2011-12-20 19:56:01

回答

0

我在Lion和Mountain Lion上用MacPorts Python成像库(PIL),Pandas,Numpy和其他数值分析软件包取得了非常好的成功。

最近有一些重要的gcc升级与MacPorts上的最新数值Python模块集成。看起来像一个非常重要的努力。我建议MacPorts,除非您决定在Lion上通过本地安装PIL进行散列。

0

我已经编译与山狮和python 2.7 PIL问题。我使用Pillow代替,它是一个友好的PIL叉,具有更广泛的平台支持。

regardins您的设置问题:

  • 我使用Python 2.7版和其他开源的东西的MacPorts我的Mac上(使用libpng,libjpeg等枕头)
  • 的virtualenv创建虚拟Python环境(VENV将被内置到python 3中。3)
  • 我把源代码在〜/ src目录(而不是下载文件夹)