安装完PIL,在处理jpg时,竟然提示“decoder jpeg  not available”,搜之原来是PIL安装没有提供对jpeg的支持。

首先卸载已经安装的PIL:

在Mac下,找到site-packages可用如下方法:

[python] view plaincopy
  1. import django  
  2. dir(django)  
  3. print django.__path__  

经查找,我的在/Library/Python/2.7/site-packages下。

进入目录,删除PIL目录和PIL.pth,已安装的PIL就会卸载。

下载libjpeg和zlib:

http://www.ijg.org/files/jpegsrc.v7.tar.gz

http://zlib.net/zlib-1.2.7.tar.gz

安装libjpeg:

[python] view plaincopy
  1. $ tar zxvf jpegsrc.v7.tar.gz   
  2. $ cd jpeg-7  
  3. $ ./configure --enable-shared --enable-static  
  4. $ make  
  5. $ sudo make install  

默认安装在了:/usr/local/lib下。

安装zlib:

[plain] view plaincopy
  1. $ tar zxvf zlib-1.2.7.tar.gz  
  2. $ ./configure  
  3. $ make  
  4. $ sudo make install  

默认安装在了:/usr/local/lib下。

修改PIL的setup.py:

[python] view plaincopy
  1. JPEG_ROOT = "/usr/local/include"  
  2. ZLIB_ROOT = "/usr/local/include"  

编译PIL:

[python] view plaincopy
  1. $ python setup.py build_ext -i  


测试:

[python] view plaincopy
  1. $ python selftest.py  

如果提示:

[plain] view plaincopy
  1. "57 tests passed."  


那么安装:

[plain] view plaincopy
  1. $ python setup.py install  

安装完毕。