python中PIL安装简单教程
python的PIL安装是一件很头疼的的事,如果你要在python中使用图型程序那怕只是将个图片从二进制流中存盘(例如使用Scrapy爬网存图),那么都会使用到PIL
这库,而这个库是出名的难安装.
它的表现为,如果你使用Scrapy的ImagePipeline它就会默认使用PIL,如果没有正确安装图型解码器那会都会出现以下的错误:
IOError:decoderjpegnotavailable
在网上找过很多方法都还是不行,也不明究竟,开始以为是PIL这个库的安装有问题,但即使正确安装了PIL仍然是会出现以上的错误.原因就在于解码器decoder的问题.
后来找到一个叫Imaging-1.1.7的包,胡乱地安装了一下,结果行了就没有理会.技术债是始终要还的,只是没想到这么快,临近项目发布又在Ubuntu上遇到同的样问题了,
直接用这个包,但结果却...
答案当然是让人痛苦的,还是IOError~
好吧,痛苦的事就让它过去吧,经过一番的折腾后最后发现一线曙光,请留意以下的表信息:
-------------------------------------------------------------------- PIL1.1.7SETUPSUMMARY -------------------------------------------------------------------- version1.1.7 platformlinux22.7.6(default,Jun222015,17:58:13) [GCC4.8.2] -------------------------------------------------------------------- ***TKINTERsupportnotavailable ***JPEGsupportnotavailable ***ZLIB(PNG/ZIP)supportnotavailable ***FREETYPE2supportnotavailable ***LITTLECMSsupportnotavailable --------------------------------------------------------------------
注:这个表是在Imaging的安装目录中用pythonsetup.pybuild指令后显示出来.
如果你看得详细一点就发现了吧,对!所有的图片解码都不支持.问题不是出在PIL上,而是在decoder上.我之前在OSX上能牛屎地安装成功一定是之前安装了这些decoder.
为了让其它的朋友不会再掉入此坑,特意将安装方法整理了一下:
MacOSX
brewupdate
brewinstalllibjpeglibpng
装这两个就够了
Ubuntu14.0.4
sudoapt-getinstalllibjpeg-devlibpng12-devlibfreetype6-devlibtiff-dev
Linux上比较惨一些,要多装几个包.
这还不够的,最好就直接用Pillow这个python包来取代手工下载Imaging这个包吧,直接用以下指令
pipinstall-I--no-cache-dir-vPillow
这个指令执行完毕会有一大堆的信息,不用管它,只要找到以下这个就行了:
-------------------------------------------------------------------- PILSETUPSUMMARY -------------------------------------------------------------------- versionPillow3.2.0 platformlinux22.7.6(default,Jun222015,17:58:13) [GCC4.8.2] -------------------------------------------------------------------- ***TKINTERsupportnotavailable ---JPEGsupportavailable ***OPENJPEG(JPEG2000)supportnotavailable ---ZLIB(PNG/ZIP)supportavailable ***LIBTIFFsupportnotavailable ---FREETYPE2supportavailable ***LITTLECMS2supportnotavailable ***WEBPsupportnotavailable ***WEBPMUXsupportnotavailable -------------------------------------------------------------------- Toaddamissingoption,makesureyouhavetherequired library,andsetthecorrespondingROOTvariableinthe setup.pyscript. Tocheckthebuild,runtheselftest.pyscript.
这下行了!还有一个小提示:请留意看上面一行,Tocheckthebuild,runtheselftest.pyscript.这个selftest.py可是个好东东噢.至少可以知道成功没。
祝大家安装成功!