关于PIL错误 – IOError:解压缩zip不可用

我得到:

IOError: decoder zip not available 

当我尝试绘制图像并保存到PIL中的JPEG。 有关如何解决这个问题的任何想法? 在过去,PIL对我来说很好,当谈到查看/上传图像时。

11 Solutions collect form web for “关于PIL错误 – IOError:解压缩zip不可用”

它可能只需要zip解码器来保存jpeg。 我想我需要在OS X中按照这些步骤来预览jpeg。

这可能意味着你需要:

  • 下载PIL源码 。
  • 下载zlib库。
  • 将PIL源指向zlib库。
  • build立PIL。
 sudo pip uninstall PIL sudo pip install pillow 

^^为我修好了。

枕头是与PIP / setuptools兼容的PIL叉,并得到一个更好的维护。 我还没有看到任何API差异。

编辑:有一个值得注意的API差异。 PIL公开Image作为顶级命名空间,所以你可以

 import Image # in PIL only 

 from PIL import Image # in pillow or PIL 
  • 谢谢,Leopd!

Ubuntu 64位zlib库更详细的安装PIL:

http://obroll.com/install-python-pil-python-image-library-on-ubuntu-11-10-oneiric/

对于懒惰(信贷到@ meawoppl apt-get ):

 $ sudo apt-get install libjpeg-dev zlib1g-dev 

我在64位ubuntu 13.04桌面版上遇到了这个问题,这里是我解决这个问题的方法。

尝试重新安装PIL,并在重新安装后注意输出信息:

 --------------------------------------------------------------------- PIL 1.1.7 SETUP SUMMARY -------------------------------------------------------------------- version 1.1.7 platform linux2 2.7.4 (default, Sep 26 2013, 03:20:26) [GCC 4.7.3] -------------------------------------------------------------------- *** TKINTER support not available --- JPEG support available *** ZLIB (PNG/ZIP) support not available --- FREETYPE2 support available *** LITTLECMS support not available -------------------------------------------------------------------- 

请注意,有一行: *** ZLIB (PNG/ZIP) support not available ,这意味着PIL已经build成,没有ZLIB支持,我通过这样做来解决它:

首先你应该安装这些软件包: libjpeg-dev libfreetype6-dev zlib1g-dev

 sudo apt-get install python-dev libjpeg-dev libfreetype6-dev zlib1g-dev # create these links, if already exists, remove it and re-link it ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib # reinstall PIL pip uninstall PIL pip install PIL 

这一次,应该有一行--- ZLIB (PNG/ZIP) support available输出中--- ZLIB (PNG/ZIP) support available

参考: http : //jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/

我遇到了同样的问题。 在我看来,枕头和枕头(不同的情况在'p')是两个不同的包。 所以,如果你正在使用枕头, pip install pillow可能没有帮助。 这是我的解决scheme:

 $ pip uninstall pillow $ pip uninstall Pillow $ sudo apt-get install libjpeg-dev zlib1g-dev $ pip install -I Pillow 

前两行是去除任何枕头或枕头包。

第三行是安装两个必需的软件包。

四是重新安装枕头。

请注意,如果您使用的是virtualenv,则必须在virtualenv下运行pip install/uninstall

我在OS X Mavericks上解决这个问题的方法是这样做的:

安装brew:

http://brew.sh/

安装点子:

http://www.pip-installer.org/en/latest/installing.html

有了这些,你可以这样做:

 sudo brew install lzlib # installs zlib pip uninstall PIL pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL 

之后,它工作正常。 有关第三行的解释,请检查以下答案:

https://stackoverflow.com/a/2486396/290072

在Mac上

 sudo brew install lzlib # installs zlib pip uninstall PIL pip install PIL 

我用的是64bit的ubuntu 14.04LTS桌面版本,我试过了Johnny Zhao的回答。
什么时候

 exec sudo easy_install PIL 

我得到一个错误:

 can't find freetype/fterrors.h 

我发现freetype2在/ usr / include /

你可以通过以下方式解决:

 sudo ln -s /usr/include/freetype2 /usr/include/freetype 

那么安装就会成功

在我的情况下,我只是remore python-image,确保libz准备好然后重新安装PIL,更多的细节你可以看到我的post在这里:

http://febru.soluvas.com/2014/03/solved-openerp-7-ioerror-decoder-zip.html

Mac OS X的PIL JEPG和PNG的问题 (相同的Linux操作系统),这篇文章帮助我解决PNG和JPEG问题与PIL:解压缩zip不可用解码器jpeg不可用

确保JPEG和ZLIB可用,当您安装/重新安装PIL时:

 $ cd Imaging-1.1.7 $ python setup.py build_ext -i $ python selftest.py -------------------------------------------------------------------- --- TKINTER support available --- JPEG support available --- ZLIB (PNG/ZIP) support available *** FREETYPE2 support not available *** LITTLECMS support not available -------------------------------------------------------------------- 

原因可能是你没有zlib支持安装枕头。

在CentOS 7上:

 yum install zlib zlib-devel pip install Pillow --upgrade 

如果您正在使用一个Web应用程序重新启动您的Web服务器来申请。

  • 如何将Numpy数组转换为应用matplotlib颜色映射的PIL图像
  • 在Python中使用PIL裁剪图像
  • 如何使用PIL合并一个透明的PNG图像与另一个图像
  • python图像识别
  • 如何使用PIL调整图像大小并保持宽高比?
  • 用Python PIL改变图像色调
  • 在Win7 64位Python 2.6.4中安装PIL(Python Imaging Library)
  • 在JPG图像上操作时,“无法将模式P写入JPEG”
  • 重新采样表示图像的numpy数组
  • Python图像库 - 文本渲染
  • 如何将PIL生成的图像发送给浏览器?