PIL库的一些问题以及如何使用Pillow替代

黄金乞丐 发布于 2013/03/27 14:36
阅读 7K+
收藏 1
帮新同事部署开发环境, 由于项目代码里用到了PIL库处理图片, 导致一些图片在浏览器中无法正常显示. 
几番折腾, 解决了问题, 这里记录一下报的问题, 及解决方法: 

1. python版本不对, 64位的python不能装上,也不可能装得上32位的PIL, 所以先把PY换成32位版本, 这个是最先搞清楚的.没有异议. 

2. 安装PIL官方编译的包之后, 会发生著名的: The _imagingft C module is not installed , 此时最好重新下一个: 
地址在  http://www.lfd.uci.edu/~gohlke/pythonlibs/  
这里是一些第三方组织编译的EXE包, 要下载对应PY版本的PIL, 重新安装, 最好下载Pillow, 它是对PIL的一些BUG修正后的编译版 
安装前,可以先 pip uninstall pil 

3. 安装Pillow后, 可能还会发生KeyError的错误, 检查项目源码后发现是 Image 模块的save函数中 , 处理图片文件格式时报的错. 
不管是"JPEG", 还是"GIF", 都会报错, 解决的办法是: 
把项目源码中 import Image , 替换成 from PIL import Image 即可. 
按这个原理, 项目中所有用到 Image 模块的地方都应该替换掉. 


另外, 可以在cmd console中测试 Image的SAVE字典, 
>>> import Image 
>>> Image.init() 

>>> Image.SAVE.keys() 
['XBM', 'PCX', 'SPIDER', 'HDF5', 'TIFF', 'BUFR', 'EPS', 'JPEG', 'MSP', 'GRIB', ' 
GIF', 'BMP', 'TGA', 'IM', 'PPM', 'PDF', 'FITS', 'PALM', 'WMF', 'PNG'] 

经过上面的测试后, 如果 Image.SAVE.keys() 输出为空,则说明没有找到 save format key, 在生成图片时就会报KeyError, 此时就需要把第一行改成: from PIL import Image 
加载中
0
百草0813
百草0813
来学习了,
0
xnhcx
xnhcx

好文章,Ubuntu下装完python-setuptools(easy_install)、源码build和安装PIL、easy_install FLASK以后,把字体的xxx.ttf改成绝对路径以后就好用了。

赞!这样的好文章要顶。

返回顶部
顶部