PIL在我的系统中支持JPEG。

每当我做一个上传,我的代码失败:

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

我该如何解决这个问题?


当前回答

在Mac OS X Mavericks(10.9.3)上,我通过以下方法解决了这个问题:

通过brew安装libjpeg(包管理系统)

编译libjpeg

重新安装枕头(我用枕头代替PIL)

pip安装-I枕

其他回答

同样的问题在这里,JPEG支持可用,但仍然得到IOError:解码器/编码器JPEG不可用,除了我使用枕头而不是PIL。

我尝试了以上所有方法和更多方法,但经过几个小时后,我意识到使用sudo pip install与virtualenv结合使用并不能像我预期的那样工作。愚蠢的我。

使用sudo可以有效地在新shell中启动命令(我对这一点的理解可能不完全正确),其中virtualenv未被激活,这意味着包将被安装在全局环境中。(这把事情搞砸了,我想我有2个不同的枕头安装。)

我清理了一些东西,将用户改为root并重新安装在virtualenv中,现在它可以工作了。 希望这能帮助到一些人!

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)安装了所需的库

首先,除了卸载python,我还必须删除隐藏文件夹user/appData中的python文件夹(这造成了巨大的麻烦)。然后我安装了WinPython Distribution: http://code.google.com/p/winpython/,其中包含PIL

我太新手了,不能评论zeantsoi的帖子。所以这里是我需要做的解决在OSX上10.9.1的

IOError:解码器jpeg不可用

1)安装Xcode工具(打开你的终端并执行:Xcode -select——install) -摘自这篇文章:在Mac OS X 10.9之后无法安装PIL

2)安装libpng和libjpeg包(组合安装程序)从这个链接:http://ethan.tira-thompson.com/Mac_OS_X_Ports.html

3)重启(不确定这是强制性的)

4)重新安装PIL运行pip install -I PIL(因为我最初安装PIL之前有问题)

希望这对你有所帮助,不要再困惑了…

_oho

这个问题是很久以前发布的,大多数答案也很老了。所以当我花了几个小时试图弄清楚这个问题时,什么都没用,我尝试了这篇文章中的所有建议。

当我试图在我的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年及以后的人们有所帮助!

干杯