PIL在我的系统中确实支持JPEG。
每当我上传时,我的代码都会失败并显示以下内容:
File "PIL/Image.py", line 375, in _getdecoder raise IOError("decoder %s not available" % decoder_name) IOError: decoder jpeg not available
我该如何解决?
需要libjpeg-dev才能处理带有枕头(或PIL)的jpeg,因此你需要先安装它,然后重新编译枕头。在Ubuntu 14.04上似乎还需要libjpeg8-dev
libjpeg-dev
Ubuntu 14.04
libjpeg8-dev
如果你仍在使用PIL,那么这些天你确实应该使用枕头,因此pip uninstall PIL请先遵循以下说明进行切换,或者如果你有充分的理由坚持使用PIL,请在下面将“枕头”替换为“ PIL” )。
pip uninstall 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)。
no-cache-dir