Python 关于PIL错误--IOError:解码器zip不可用
我得到的是:Python 关于PIL错误--IOError:解码器zip不可用,python,python-imaging-library,Python,Python Imaging Library,我得到的是: IOError: decoder zip not available 当我试图绘制一幅图像并将其保存为PIL格式的jpeg时。如何解决这个问题有什么想法吗? 过去,在查看/上传图像时,PIL对我来说效果很好。它可能只需要zip解码器来保存jpeg。我想我需要在OSX中按照这些步骤来预览JPEG 这可能意味着您需要: 下载 下载zlib库 构建PIL 在Ubuntu 64位中使用zlib库安装PIL的更多详细信息: 对于懒惰的人(归功于apt get的@meawoppl):
IOError: decoder zip not available
当我试图绘制一幅图像并将其保存为PIL格式的jpeg时。如何解决这个问题有什么想法吗?
过去,在查看/上传图像时,PIL对我来说效果很好。它可能只需要zip解码器来保存jpeg。我想我需要在OSX中按照这些步骤来预览JPEG 这可能意味着您需要:
- 下载
- 下载zlib库
- 构建PIL
apt get
的@meawoppl):
^^帮我修好了
是PIL的一个分支,它与pip/setuptools兼容,并且得到了更好的维护。我还没有看到任何API差异
编辑:有一个显著的API差异。PIL将图像公开为顶级名称空间,因此您可以
import Image # in PIL only
但是
- 谢谢你,利奥波德李> 苹果电脑上的
sudo brew install lzlib # installs zlib
pip uninstall PIL
pip install PIL
我在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)支持不可用
,
这意味着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)支持
参考资料:我在OS X Mavericks上解决这个问题的方法是:
安装brew:
安装pip:
有了这些,您可以执行以下操作:
sudo brew install lzlib # installs zlib
pip uninstall PIL
pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL
在那之后,它工作得很好。有关第三行的解释,请检查以下答案:
在我的案例中,我只是移除了python映像,确保libz已经准备好,然后重新安装PIL,更多细节可以在我的帖子中看到:
(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
--------------------------------------------------------------------
我遇到了同样的问题。在我看来,枕头和枕头(p中的不同大小写)是两个不同的包装。因此,如果您使用的是枕头,pip安装枕头
可能没有帮助。以下是我的解决方案:
$ pip uninstall pillow
$ pip uninstall Pillow
$ sudo apt-get install libjpeg-dev zlib1g-dev
$ pip install -I Pillow
前两行是移除任何枕头或枕头包装
第三行是安装两个必需的软件包
四是重新安装枕头
注意,如果您使用的是virtualenv,pip安装/卸载
必须在virtualenv下运行我使用64位Ubuntu14.04LTS桌面版,我尝试了Johnny Zhao的答案。
什么时候
我有一个错误:
can't find freetype/fterrors.h
我在/usr/include/
您可以通过以下方式解决此问题:
sudo ln -s /usr/include/freetype2 /usr/include/freetype
然后安装将成功原因可能是您安装的枕头没有zlib支持
在CentOS 7:
yum install zlib zlib-devel
pip install Pillow --upgrade
如果您正在使用Web应用程序,请重新启动您的Web服务器以应用。我尝试了2.8.0版,但效果良好
pip install -Iv Pillow==2.8.0
在ubuntu18
上,我不得不安装pillow2.8.1
:
pip install Pillow==2.8.1
尝试:
$sudo-apt-get-install-python-dev
$sudo apt get安装libjpeg8 dev
$sudo ln-s/usr/lib/x86_64-linux-gnu/libjpeg.so/usr/lib
从3.0.0版开始,枕头需要libjpeg。如果问题仍然存在,则可能存在某些包不兼容。节省一些时间,然后尝试以前的版本:
$pip安装枕==2.8.1
修复了我的问题!这比手动编译PIL简单得多。非常感谢。API差异很小-导入图像
适用于PIL,而不是枕头。pillow需要PIL导入图像中的
在运行pillow安装之前,我建议使用“sudo-apt-get-install-libjpeg-dev-zlib1g-dev”安装zlib和jpeg-dev头文件。这将确保.png和.jpg导出正常工作并在中编译。在OS X小牛上没有帮助:(如果您在安装zlib后重新安装Pillow,您需要重新编译Pillow:pip--no cache dir install Pillow
适合懒人:sudo apt get install libjpeg dev zlib1g devi如果您恰好是为pebble开发的,并且因为zip解码器不可用而来到这里,请安装这些库并重新安装Pillow。安装Pillow again将重建包含这些依赖项的库。如果这对您不起作用,请查看JohnPang为我提供的答案。请详细说明。很难说清楚您在说什么。而且sudo brew安装lzlib
只是说“brew:未找到命令”在我的上。你可以下载zlib,然后用pip重新安装pil。你不需要从源代码构建它。这篇文章帮助我解决了pil的PNG和JPEG问题。(解码器zip不可用,解码器JPEG不可用)如果您看到一个\u imagingft.c:73:31:致命错误:freetype/fterrors.h:在这之后没有这样的文件或目录
错误,只需再链接一个库:ln-s/usr/include/freetype2/usr/include/freetype2/freetype
(如果您有安装python imaging
,我相信会发生这种情况)这是因为您安装了python imaging,并且安装了apt get install python imaging
。如果您自己安装libjpeg-dev-libfreetype6-dev-zlib1g-dev
,而不安装所有python imaging,则不会出现此错误。这可能很明显,但如果您使用的是virtualenv,“pip-install-upgrade”应该在virtualenv中完成。
sudo ln -s /usr/include/freetype2 /usr/include/freetype
yum install zlib zlib-devel
pip install Pillow --upgrade
pip install -Iv Pillow==2.8.0
pip install Pillow==2.8.1