出现
OError: decoder jpeg not available
的原因是,没有装JPEG的库,同时要支持png图片的话还要装 ZLIB、FREETYPE2、LITTLECMS的库文件。
先说第一种解决方案:完整安装这些库!!!!
安装方法:http://cn-popeye.iteye.com/blog/1236691 在这篇博客里作者很详细的说了下载地址和安装方法,我这里只是抄过来。
1. install zlib (ubuntu 官方源没有zlib,别想apt-get了)
下载zlib,(zlib.net已墙,可以去SF.net),url:
$ tar -xvzf zlib-1.2.5.tar.gz$ cd zlib-1.2.5$ ./configure --prefix=/usr/local$ make$ sudo make install
2.install png(忘记apt-get吧)
$ wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.6.tar.gz (如果文件不存在就浏览 /src/目录查找一下最新版)
$ tar -xvzf libpng-1.5.6.tar.gz $ cd libpng-1.5.6$ ./configure --prefix=/usr/local$ make $ sudo make install
3.install freetype (忘记apt-get吧)
$ wget http://nchc.dl.sourceforge.net/project/freetype/freetype2/2.4.7/freetype-2.4.7.tar.gz
$ tar -xvzf freetype-2.4.7.tar.gz $ cd freetype-2.4.7/$ ./configure --prefix=/usr/local$ make $ make install
4.install jpeg (忘记apt-get吧)
$ wget http://www.ijg.org/files/jpegsrc.v8c.tar.gz
$ tar -xvzf jpegsrc.v8c.tar.gz$ cd jpeg-8c/$ ./configure --prefix=/usr/local$ make $ sudo make install
然后,安装需要的 devel库(现在是想起apt-get的时候了)!!!!!!!!
$ sudo apt-get install libjpeg8-dev $ sudo apt-get install libpng12-dev$ sudo apt-get install libfreetype6-dev$ sudo apt-get install zlib1g-dev
现在,安装 PIL( Python Imaging Library )!!!!!!!!
$ wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz$ tar -xvzf Imaging-1.1.7.tar.gz$ cd Imaging-1.1.7/
修改setup.py文件:
$ nano setup.py修改如下: JPEG_ROOT = "/usr/local/lib"ZLIB_ROOT = "/usr/local/lib"FREETYPE_ROOT = "/usr/local/lib"
检查是否支持:
$ python setup.py build_ext -i
running build_ext--------------------------------------------------------------------PIL 1.1.7 SETUP SUMMARY--------------------------------------------------------------------version 1.1.7platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)[GCC 4.5.2]--------------------------------------------------------------------*** TKINTER support not available--- JPEG support available -----------------------> OK! !!!!!!!--- ZLIB (PNG/ZIP) support available -----------------------> OK! !!!!!!!--- FREETYPE2 support available -----------------------> OK! !!!!!!!*** LITTLECMS support not available--------------------------------------------------------------------To add a missing option, make sure you have the requiredlibrary, and set the corresponding ROOT variable in thesetup.py script.To check the build, run the selftest.py script.
正式安装:
$ python setup.py build
$ sudo python setup.py install
至此,安装结束。博主也是按照这种方法装的,完全可以用。(我之是在编译了之后太激动了以至于忘了安装,所以一直不能用,最终还是找到了问题所在。这个方法从根本上解决了问题)
说明:如果不是按这种方法装的话,装完之后一定要记得把JPEG,ZLIB,FREETYPE,LITTLECMS的那几个库链接到PIL里边,不然调用不了。
第二种解决方案:
也是在网上看到了,是找了一个替换的库 pillow 。 具体的方法我就不在这里写了,可以到原文里去看。 其中原文中提到作者看到的那篇文章《 》里边提到的问题,说装了那些库之后,显示PIL正常支持,但是程序依然运行不起来,我估计原因就是没有把库添加到PIL中去。
原文链接:
第三种解决方案:
是《》中提出来的。
Ubuntu linux上部署tornaod应用。处理图片的时候发现Image模块报错:
IOError: decoder jpeg not available
提示没有安装jpeg模块。
先卸载PIL(我是用pip安装的,其他安装的话,请酌情解决。)
sudo pip uninstall PIL
安装Ubuntu打包好的python-imaging模块,便可成功解决。
sudo apt-get install python-imaging
终于彻底搞定了这个东西~
!!!!!!!!剧终!!!!!!!