ubuntu14.04 安装PIL库出现OError: decoder jpeg not available 的解决方案

出现

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:http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.gz/download?use_mirror=superb-dca2

$ 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.7
platform 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 required
library, and set the corresponding ROOT variable in the
setup.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 zip jpeg decoders not working on runtime but work on install/selftest 》里边提到的问题,说装了那些库之后,显示PIL正常支持,但是程序依然运行不起来,我估计原因就是没有把库添加到PIL中去。

 

原文链接:解决virtualenv下安装Python PIL的support not available问题    

 

第三种解决方案:

是《Ubuntu下安装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

 

终于彻底搞定了这个东西~

 

!!!!!!!!剧终!!!!!!!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。