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

发布于 2021-02-02 23:08:55

PIL在我的系统中确实支持JPEG。

每当我上传时,我的代码都会失败并显示以下内容:

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

我该如何解决?

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    需要libjpeg-dev才能处理带有枕头(或PIL)的jpeg,因此你需要先安装它,然后重新编译枕头。在Ubuntu 14.04上似乎还需要libjpeg8-dev

    如果你仍在使用PIL,那么这些天你确实应该使用枕头,因此pip uninstall PIL请先遵循以下说明进行切换,或者如果你有充分的理由坚持使用PIL,请在下面将“枕头”替换为“ 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 32bit:

    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/
    

    然后重新安装枕头:

    pip install --no-cache-dir -I pillow
    

    (进行编辑以包含评论的反馈。感谢Charles Offenbacher指出32位版本存在差异,而t-mart建议使用–no-cache-dir)。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看