帮新同事部署开发环境, 由于项目代码里用到了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()  
1  
>>> 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

转自 处理老版PIL 到 pillow的更多相关文章

  1. (36)老版和新版API调用

    ---------更新时间18:06 2016-09-18 星期日------- *前言   我用的是odoo8,但里面有相当多的api是以前版本,这时若我们自己开发的   插件采用新版本api,里面 ...

  2. 使用Qpython3制作老版天翼飞TP路由器拨号脚本

    #幻境拨号python版 #by 1414641776 account='xxxxxx@96301' password='xxxxx' # 路由器脚本 def sendToRoute(account, ...

  3. PIL库 (Pillow)

    PIL基础 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important ...

  4. CSS3弹性盒模型新版和老版写法差异

    1.在使用弹性盒模型的时候父元素必须要加display:box 或 display:inline-box: 新版弹性盒模型:flex:display : flex 老版弹性盒模型:box : disp ...

  5. 自定义的库加载不进来,因为库中import的PIL和pillow文件没有pip install

    1.自定义的库,加载进来,提示red不能识别这个class或moudle 2.应该展开细节多看下,细节中提示,没有PIL和pillow 3.这个时候在cmd中使用pip安装PIL和pillow pip ...

  6. PIL、Pillow安装使用方法

    PIL(Python Imaging Library)是Python常用的图像处理库,而Pillow是PIL的一个友好Fork,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存.图像显 ...

  7. MidoNet 安装(Kilo RDO)(最老版)

    一.初始化(Kilo RDO)版(最老版) 环境介绍 系统 CentOS 7.3 主机ip 10.211.55.5 主机名 midonet 1.配置yum源 ###OpenStack源 yum ins ...

  8. Python PIL、Pillow笔记

    原文链接:https://blog.csdn.net/FlashKoala/article/details/90649464 一.PIL.Pillow简介 PIL(Python Imaging Lib ...

  9. [Python] 图像简单处理(PIL or Pillow)

    前几天弄了下django的图片上传,上传之后还需要做些简单的处理,python中PIL模块就是专门用来做这个事情的. 于是照葫芦画瓢做了几个常用图片操作,在这里记录下,以便备用. 这里有个字体文件,大 ...

随机推荐

  1. .net类库中和数据库相关的

    System.Data.SqlTypes SqlDbType 枚举类型 Specifies SQL Server-specific data type of a field, property, fo ...

  2. 函数lock_rec_enqueue_waiting

    type_mode基础上 加上 LOCK_WAIT 表示等待状态 /****************************************************************** ...

  3. 在blade中定义一个可以被模版使用的变量

    laravel的blade中的数据一般由控制器传入,但是有没有什么办法临时在blade模版中创建并且被blade所使用吗? 答案是肯定的,不过语法稍微复杂一点 {{-- */$variableAvai ...

  4. 51nod1586 约数和

    果然我自己写的读入优化naive!...换题目给的读入优化就A了...话说用visual交快了好多啊... const int BufferSize=1<<16; char buffer[ ...

  5. HDU 2577 How to Type (DP,经典)

    题意: 打字游戏,求所按的最少次数.给出一个串,其中有大小写,大写需要按下cap键切换到大写,或者在小写状态下按shift+键,这样算两次,打小写时则相反.注意:在打完所有字后,如果cap键是开着的, ...

  6. /etc/selinux/config

    /etc/selinux/configSELINUX=disabled改成了SELINUX=enforcing机器无法启动 linux无法启动怎么解决:[1]selinux配置错误 SELinux 入 ...

  7. 对于fmri的hrf血液动力学响应函数的一个很直观的解释-by 西南大学xulei教授

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all;clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  8. windows下用mingw编译linux项目

    1.下载安装mingw32 2.将mingw下bin和msys\1.0下bin设置为系统path 3.启动msys.bat 4.cd到项目目录 5.输入./configure 6.输入make 7.输 ...

  9. php排序测试

    对 http://www.cnblogs.com/kudosharry/articles/2521621.html 这个补充的调用系统sort()函数的测试结果 1000个随机数: 直接插入排序:时间 ...

  10. Auto Updating the exe from a network location when application starts z

    http://www.codeproject.com/Tips/869588/Auto-Updating-the-exe-from-a-network-location-when?msg=499218 ...