zoukankan      html  css  js  c++  java
  • 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

     

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

     

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

  • 相关阅读:
    项目总结升级2
    项目总结升级1
    项目总结升级
    项目总结4
    项目总结3
    体温填报app2.0开发
    每日博客
    第一周开课博客
    学习日报
    学习日报
  • 原文地址:https://www.cnblogs.com/asmer-stone/p/4567750.html
Copyright © 2011-2022 走看看