问题一: *** TKINTER support not available
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.6 (default, Nov 11 2014, 16:55:01)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
--- LITTLECMS support available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
解决:
apt-get install libjpeg libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev (无用)
pip install pillow
问题二:如何安装PIL
原文见:http://cn-popeye.iteye.com/blog/1236691
转载如下:
PIL是python理想的图片处理module,但是想要良好的支持各种图片,还需要检查一下几步,否则会提示:IOError: decoder jpeg not available之类的。
我的环境:Linux mint 11 amd64 / Python2.7
第一步:安装zlib png freetype jpeg
- 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
shell:
$ tar -xvzf zlib-1.2.5.tar.gz$ cd zlib-1.2.5$ ./configure --prefix=/usr/local$ make$ sudo make install
shell:
$ 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
- install freetype (忘记apt-get吧)
shell:
$ 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
- install jpeg (忘记apt-get吧)
shell:
$ 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的时候了)
shell:
$ 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 )
shell 写道
$ 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 -irunning 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
最后一步:验证
-
-
-
- import Image
- picPath = '~/images/1212.jpg'
-
- im = Image.open(picPath)
- print im.getbbox()
输出结果图片尺寸:
(0, 0, 600, 715)
问题三:ImportError: libjpeg.so.8: cannot open shared object file: No such file or directory
解决:
whereis Python
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/lampp/lib/
问题四:PIL IOError: cannot identify image file 'images/1212.jpg'的解决办法
from PIL import Image
instead of
import Image
fixed the issue
最后,贴上我的测试和结果:
aa.py:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#import Image
#import ImageFont
from PIL import Image
picPath = 'images/1212.jpg'
im = Image.open(picPath)
print im.getbbox()
结果:
(0, 0, 451, 182)