首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python图像库失败,并显示消息“解码器JPEG不可用”- PIL

Python图像库失败,并显示消息“解码器JPEG不可用”- PIL
EN

Stack Overflow用户
提问于 2012-01-19 02:24:20
回答 10查看 155.4K关注 0票数 305

PIL在我的系统中支持JPEG。

每当我进行上传时,我的代码都会失败,出现以下错误:

File "PIL/Image.py", line 375, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available

我该如何解决这个问题?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-04-12 00:22:59

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位不同,感谢沃尔玛建议使用--no-cache-dir)。

票数 493
EN

Stack Overflow用户

发布于 2013-06-04 19:36:38

这是唯一对我有效的方法。安装软件包和重新安装PIL不起作用。

在ubuntu上,安装所需的软件包:

sudo apt-get install libjpeg-dev

(您可能还想安装libfreetype6 libfreetype6-dev zlib1g-dev以启用其他解码器)。

然后用枕头替换PIL:

pip uninstall PIL
pip install pillow
票数 29
EN

Stack Overflow用户

发布于 2013-06-04 10:03:20

以下是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 avaliable“时,这意味着它可以工作。

但是,如果在编辑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/

然后,终于,它起作用了!

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8915296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档