File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
我该如何解决这个问题?
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
我该如何解决这个问题?
需要安装libjpeg-dev才能使用pillow(或PIL)处理JPEG图像,因此您需要安装它,然后重新编译pillow。在Ubuntu 14.04上还需要安装libjpeg8-dev。
如果您仍在使用PIL,则现在应该使用pillow,因此在按照以下说明切换之前,首先运行pip uninstall PIL
,或者如果有充分理由坚持使用PIL,则在下面的说明中将"pillow"替换为"PIL"。
在Ubuntu上:
# install libjpeg-dev with apt
sudo apt-get install libjpeg-dev
# if you're on Ubuntu 14.04, also install this
sudo apt-get install libjpeg8-dev
# reinstall pillow
pip install --no-cache-dir -I pillow
如果那个方法行不通,可以尝试以下两个方法之一,具体取决于您使用的是 64 位还是 32 位 Ubuntu。
对于 Ubuntu x64:
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib
或者对于Ubuntu 32位:
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/
sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/
然后重新安装 Pillow:
pip install --no-cache-dir -I pillow
(包含评论反馈的编辑。感谢Charles Offenbacher指出这在32位上有所不同,感谢t-mart建议使用--no-cache-dir
。)。
pip install
可能会很慢,但是后续的卸载和重新安装则会异常迅速。总之,我尝试了上述方法,但直到我运行了pip install --no-cache-dir pillow
才成功。祝好运! - t-mart对于使用OSX的用户,我使用以下二进制文件在系统范围内安装了libpng和libjpeg:
由于我已经通过虚拟环境上的pip安装了PIL,所以我运行了:
pip uninstall PIL
pip install PIL --upgrade
对我来说,这解决了解码器JPEG不可用
的错误。
更新(4/24/14):
新版本的pip需要额外的标志才能从外部源下载库(包括PIL)。尝试以下操作:
pip install PIL --allow-external PIL --allow-unverified PIL
请查看以下答案以获取更多信息:pip install PIL dont install into virtualenv
更新2:
如果您使用的是OSX Mavericks,则需要设置ARCHFLAGS
标志,如下所示@RicardoGonzales 在下面的评论中提到:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL
这是唯一对我有效的方法。安装软件包并重新安装PIL都没有起作用。
在Ubuntu上,安装所需的软件包:
sudo apt-get install libjpeg-dev
(你可能还想安装libfreetype6 libfreetype6-dev zlib1g-dev
来启用其他解码器.)
然后使用Pillow替换PIL:
pip uninstall PIL
pip install pillow
pip install pillow --upgrade
。 - Dennis Golomazov以下方法在Ubuntu 12.04上可行:
pip uninstall PIL
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev
pip install PIL --upgrade
当你看到“-- JPEG support available”时,它意味着它可以工作。但是,如果在编辑JPEG图像时仍然无法正常工作,请检查Python路径!我的Python路径缺少“/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/”,所以我编辑了“~/.bashrc”并在该文件中添加了以下代码:export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
然后,最后,它可以工作了!在 Fedora 17 上,我需要安装 libjpeg-devel
并且随后重新安装 PIL
:
sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
Rolo的回答非常好,不过我必须通过绕过pip缓存(在pip 7中引入)重新安装Pillow,否则它将无法正确地重新编译!!! 命令如下:
pip install -I --no-cache-dir -v Pillow
你可以通过阅读日志来判断Pillow是否已经正确配置,例如:
PIL SETUP SUMMARY
--------------------------------------------------------------------
version Pillow 2.8.2
platform linux 3.4.3 (default, May 25 2015, 15:44:26)
[GCC 4.8.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
*** OPENJPEG (JPEG2000) support not available
--- ZLIB (PNG/ZIP) support available
--- LIBTIFF support available
--- FREETYPE2 support available
*** LITTLECMS2 support not available
*** WEBP support not available
*** WEBPMUX support not available
--------------------------------------------------------------------
正如您所看到的,支持JPG,TIFF等格式,因为我之前通过apt安装了所需的库(libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)。
在Mac OS X Mavericks(10.9.3)上,我通过以下方法解决了这个问题:
使用brew(包管理系统)安装libjpeg
brew install libjpeg
重新安装pillow(我使用pillow代替PIL)
pip install -I pillow
brew unlink jpeg && brew link jpeg
。 - Lucasapt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev
安装这些软件并确保使用pip安装PIL,因为我从源代码编译它时出现了一些问题。
我之前已经在使用Pillow
,但是遇到了相同的错误。
尝试安装libjpeg
或者libjpeg-dev
,如其他人所建议的,但是被告知已经安装了(更新的)版本。
最后解决问题只需要重新安装Pillow
即可:
sudo pip uninstall Pillow
sudo pip install Pillow
我太新手了,无法评论zeantsoi的帖子。所以这里是我在OSX 10.9.1上解决以下错误的步骤:
IOError: decoder jpeg not available
1)安装Xcode工具(打开终端并执行:xcode-select --install
)- 参考自这篇文章:Can't install PIL after Mac OS X 10.9
2)从此链接中安装libpng和libjpeg软件包(组合安装程序):http://ethan.tira-thompson.com/Mac_OS_X_Ports.html
3)重新启动(不确定是否必须)
4)使用运行 pip install -I PIL
重新安装PIL(因为我最初在出现问题之前已经安装了PIL)
希望这可以帮到你,不要让你更加困惑...
_oho