Python 调整图像大小时解码器JPEG错误

Python 调整图像大小时解码器JPEG错误,python,image,jpeg,Python,Image,Jpeg,我编写了以下代码,从目录中读取JPEG,然后调整它们的大小 for dirs, path, files in os.walk("wallet_training/"): for filename in files: I=Image.open(os.path.join("wallet_training",filename)) I=I.resize((256,256), Image.ANTIALIAS) print I

我编写了以下代码,从目录中读取JPEG,然后调整它们的大小

for dirs, path, files in os.walk("wallet_training/"):
    for filename in files:
            I=Image.open(os.path.join("wallet_training",filename))
            I=I.resize((256,256), Image.ANTIALIAS)
            print I
但是,它会引发以下错误:

File "test.py", line 31, in <module>
I=I.resize((256,256), Image.ANTIALIAS)
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1290, in resize
self.load()
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFile.py", line 189, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 385, in _getdecoder
raise 
IOError("decoder %s not available" % decoder_name)
文件“test.py”,第31行,在
I=I.resize((256256),Image.ANTIALIAS)
文件“/usr/local/lib/python2.7/dist packages/PIL/Image.py”,第1290行,调整大小
self.load()
文件“/usr/local/lib/python2.7/dist packages/PIL/ImageFile.py”,第189行,装入
d=图像。_getdecoder(self.mode,d,a,self.decoderconfig)
文件“/usr/local/lib/python2.7/dist packages/PIL/Image.py”,第385行,在
提高
IOError(“解码器%s不可用”%decoder\u name)
在没有调整大小功能的情况下使用时,代码似乎正常工作。 先谢谢你


另外,我检查了另一个问题,我已经安装了libjpeg dev,但它仍然不工作

如果您想诊断为什么PIL在构建时找不到libjpeg并正确使用它,我们可以

但是PIL实际上是一个死气沉沉的项目,它在4年前不存在的系统(比如64位Ubuntu 13.10)上的配置有很多问题。它在使用现代的
设置工具
/
pip
时也存在一些问题,关于构建过程的文档也很少。它的最后一个版本(1.1.6)从未分发给PyPI

是“PIL的一个现代分支”,它从PIL 1.1.6开始,修复它以正确地执行
setuptools
,在每个主要操作系统上运行,将它移植到Python3.x,并修复了各种错误

因此,除非您真的需要PIL1.1.5或1.1.6,否则请改用。应该这么简单:

$ pip uninstall PIL
$ pip install pillow

除非您通过binary wheel进行安装,否则该安装命令的输出应该会为您提供一个很好的表,其中列出了哪些功能曾经编译过,哪些功能没有编译过……但是如果您有发行版的标准
libjpeg
libjpeg dev
软件包,我敢打赌它一定会被找到。

您似乎缺少了PIL。你在运行什么系统
pip安装-I PIL
。他没有错过PIL;他只是缺少PIL的JPEG支持。您使用的是什么版本的PIL/枕头?如果你还在使用PIL,有什么理由不换枕头吗?如果您正在安装二进制文件,是否可以改为通过
pip
安装?您使用的是什么平台/发行版/版本,以及如何安装
libjpeg-dev
?您确定位宽匹配吗(例如,32位
libjpeg-dev
对64位Python和PIL没有帮助)?@Allendar我安装了PIL。:)是的,我使用pip安装了二进制文件,我使用64位ubuntu 13.10,我安装了64位软件包。我把PIL换成了枕头,效果很好。对不起打扰你们了。