- #IOError: decoder jpeg not available
- #Fix:
- #First remove your last install!
- rm -rf /usr/lib/python2.4/site-packages/PIL
- rm /usr/lib/python2.4/site-packages/PIL.pth
- rm ~/Imaging-1.1.6
- #Make sure you install at the libraries for both JPEG support and FreeType2:
- yum install libjpeg
- yum install libjpeg-devel
- yum install freetype
- yum install freetype-devel
- #Get PIL again and do the install:
- wget http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz
- tar -zxvf Imaging-1.1.6.tar
- cd Imaging-1.1.6/
- python setup.py build_ext -i
- #Run the included test to make sure everything now works:
- python selftest.py
- #If everything worked do the real install:
- $ python setup.py install
最近更换了网站的VPS服务器,新的VPS使用了Debian 5.0操作系统,经过一番配置,网站成功迁移可以正常访问了。但昨晚在上传jpg格式图片时却出错了,查看程序日志,得到了上传程序记录的错误日志:
IOError: decoder jpeg not available
错误信息说明这个问题应该是跟jpg图片的处理有关的,说明python的PIL库出问题了。PIL安装n回了,Windows、Linux上都搞过,第一次碰到这个问题。google一番之后,得知这个问题的原因是PIL的jpg图片支持组件没有安装导致的。最后通过下面的方法干掉了这个错误,立存此照,已被后查。
第1步:删除已经安装的PIL:
$ rm -rf /usr/lib/python2.5/site-packages/PIL
$ rm /usr/lib/python2.5/site-packages/PIL.pth
第2步:安装JPEG库和FreeType2库
(在ubuntu上面老是出错,这一步应该这样安装:
sudo apt-get install libjpeg8-dev
)
$ apt-get install libjpeg-dev
$ apt-get install libfreetype6-dev
第3步:编译PIL
建议编译之前最好先删除掉Imaging文件夹,重新用tar从压缩包里解压一个干净的安装程序
$ cd Imaging-1.1.6
$ python setup.py build_ext –i
第4步:安装
$ python setup.py install
如无意外,PIL已经能够正常处理jpg格式的图片了。以上问题所处环境为:Debian5.0+Python2.5+PIL1.1.6。
[
pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
pip install PIL
]