我得到了:
IOError: decoder zip not available
当我尝试绘制图像并保存到PIL中的jpeg时。有关如何解决此问题的任何想法? 在查看/上传图片时,PIL过去一直很适合我。
答案 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
答案 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:
安装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
之后,它工作正常。有关第三行的说明,请查看以下答案:
答案 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版本。