安装完PIL,在处理jpg时,竟然提示“decoder jpeg not available”,搜之原来是PIL安装没有提供对jpeg的支持。
首先卸载已经安装的PIL:
在Mac下,找到site-packages可用如下方法:
- import django
- dir(django)
- 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:
- $ tar zxvf jpegsrc.v7.tar.gz
- $ cd jpeg-7
- $ ./configure --enable-shared --enable-static
- $ make
- $ sudo make install
默认安装在了:/usr/local/lib下。
安装zlib:
- $ tar zxvf zlib-1.2.7.tar.gz
- $ ./configure
- $ make
- $ sudo make install
默认安装在了:/usr/local/lib下。
修改PIL的setup.py:
- JPEG_ROOT = "/usr/local/include"
- ZLIB_ROOT = "/usr/local/include"
编译PIL:
- $ python setup.py build_ext -i
测试:
- $ python selftest.py
如果提示:
- "57 tests passed."
那么安装:
- $ python setup.py install
安装完毕。