Python 图像库出现“decoder JPEG not available”错误信息 - PIL

306
PIL在我的系统中支持JPEG格式。每当我上传时,我的代码都会失败并显示以下信息:
File "PIL/Image.py", line 375, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available

我该如何解决这个问题?


22
这是一个合理的问题。PIL是一款著名的Python库,在某些Linux系统中会出现奇怪的错误。这个问题和答案帮助了我。这是一个典型的stackoverflow问题。 - neves
1
也许你可以阅读并尝试一下这个链接:https://dev59.com/I2Ml5IYBdhLWcg3wTlnY#20091508 - Wee
1
@dkt 我正在使用Pillow,因为我刚遇到了这个问题。 - Stephen Tetreault
@SMT:在这种情况下,请使用下面的优秀答案,我只是想告知新手有关pillow的信息。 - Dhiraj Thakur
1
@dkt 我知道,我只是在说问题仍然存在而已。 - Stephen Tetreault
显示剩余4条评论
15个回答

2
这个问题发布已经有一段时间了,大部分答案也很陈旧。当我花了几个小时去尝试解决这个问题时,什么都没用,我还尝试了这篇文章中的所有建议。在我的Django头像表单中尝试上传JPG文件时,仍然出现标准JPEG错误提示。
raise IOError("decoder %s not available" % decoder_name)
OSError: decoder jpeg not available

然后我检查了Ubuntu 12.04的存储库,并注意到了一些额外的libjpeg包。我安装了这些包,问题得到了解决:

sudo apt-get install libjpeg62 libjpeg62-dev

安装这些软件包将删除libjpeg-dev, libjpeg-turbo8-dev, 和 libjpeg8-dev
希望这可以帮助到2015年以及之后的读者!
祝好!

1
在这里也遇到了同样的问题,JPEG支持可用,但仍然出现IOError: decoder/encoder jpeg not available,除了我使用的是Pillow而不是PIL。
我尝试了以上所有方法以及更多方法,但经过许多小时后,我意识到与virtualenv组合使用时,使用sudo pip install并不能按照我预期的那样工作。我太傻了。
使用sudo实际上会在新的shell中启动命令(我的理解可能不完全正确),其中虚拟环境未被激活,这意味着包将被安装在全局环境中,而不是虚拟环境中。(这搞砸了事情,我想我有两个不同版本的Pillow安装。) 我清理了一下,切换到root用户并在虚拟环境中重新安装,现在它可以工作了。
希望这能对某些人有所帮助!

1

对于 Fedora

安装先决条件
sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
现在安装 Pillow

sudo pip install pillow

注意 - 对于 libjpeg 和 zlib,我们在 Fedora / CentOS / Red Hat 中安装 libjpeg-develzlib-devel 包。


0
首先,我必须删除隐藏文件夹user/appData中的Python文件夹(这会导致很大的麻烦),并卸载Python。然后我安装了WinPython Distribution:http://code.google.com/p/winpython/,其中包括PIL。

4
在Windows下进行Python开发很痛苦。我建议不要这样做。 - Thorin Schiffer

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接