关于PIL错误 - IOError:解码器zip不可用

时间:2010-08-23 01:14:21

标签: python python-imaging-library

我得到了:

IOError: decoder zip not available

当我尝试绘制图像并保存到PIL中的jpeg时。有关如何解决此问题的任何想法? 在查看/上传图片时,PIL过去一直很适合我。

15 个答案:

答案 0 :(得分:115)

sudo pip uninstall PIL
sudo pip install pillow 

^^为我修好了。

Pillow是PIL的一个分支,它与pip / setuptools兼容,并且可以获得更好的维护。 我还没有看到任何API差异。

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

import Image # in PIL only

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

答案 1 :(得分:39)

在Ubuntu 64位中使用zlib库安装PIL的详细信息:

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

对于懒惰(apt-get的@ meawoppl ):

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

答案 2 :(得分:17)

我在 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是在没有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

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

答案 3 :(得分:11)

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

这可能意味着你需要:

答案 4 :(得分:7)

我遇到了同样的问题。在我看来,枕头和枕头(不同的情况在' p')是两个不同的包。因此,如果您使用枕头,pip install pillow可能无济于事。这是我的解决方案:

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

前两行是移除任何枕头或枕头套件。

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

Forth是重新安装Pillow。

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

答案 5 :(得分:2)

我在OS X Mavericks上修复此问题的方法是:

安装brew:

http://brew.sh/

安装pip:

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

答案 6 :(得分:1)

在mac

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

答案 7 :(得分:1)

我使用64位ubuntu 14.04LTS桌面版,我尝试了Johnny Zhao的回答。

exec sudo easy_install PIL

我收到了一个错误:

can't find freetype/fterrors.h

我在/ usr / include /

中找到了freetype2

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

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

然后安装将成功

答案 8 :(得分:1)

原因可能是您在没有zlib支持的情况下安装了Pillow。

在CentOS 7上:

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

如果您正在使用webapp,请重新启动您的网络服务器以应用。

答案 9 :(得分:0)

在我的情况下,我只是删除了python-image,确保libz已经准备就绪然后重新安装PIL,你可以在我的帖子上看到更多细节:

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

答案 10 :(得分:0)

Mac OS X PIL JEPG and PNG issues(同样适用于linux操作系统),这篇文章帮助我解决了PIL的PNG和JPEG问题: 解码器zip不可用解码器jpeg不可用

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

$ 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
--------------------------------------------------------------------

答案 11 :(得分:0)

我试过版本2.8.0它可以正常使用

pip install -Iv Pillow==2.8.0

答案 12 :(得分:0)

pillow 2.8.1,我必须安装pip install Pillow==2.8.1

cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/imgproc/src/color.cpp:7564: error: (-215) scn == 3 || scn == 4 in function cvtColor

答案 13 :(得分:0)

尝试: $ sudo apt-get install python-dev $ sudo apt-get install libjpeg8-dev $ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib 从3.0.0版开始,Pillow需要libjpeg。如果问题仍然存在,则可能是程序包不兼容。节省一些时间并尝试以前的版本: $ pip install Pillow==2.8.1

答案 14 :(得分:-1)

应该根据你的python版本匹配Pillow版本。