PIL解码器jpeg在ubuntu x64上不可用,

时间:2013-08-29 07:33:53

标签: python jpeg python-imaging-library

我知道这个问题看起来像是重复的,但我已经按照许多在线说明如何正确安装PIL,但没有一个有效。

我已经尝试了所有内容:Python Image Library fails with message "decoder JPEG not available" - PIL但没有成功。

当我运行sudo pip install pil时,最糟糕的是,有一个误导性的错误。 Jpeg,Freetyle等支持全部列为可用。但是当使用PIL运行一些python代码时, 臭名昭着的“解码器jpeg不可用”的IOError出现了。

即使在.so libjpeg文件中符号链接到/ usr / lib之后,也没有任何效果。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:20)

你可以试试这个:

<强> 1。明确的PIL包

rm -rf /usr/lib/python2.7/site-packages/PIL
rm -rf /usr/lib/python2.7/site-packages/PIL.pth

<强> 2。安装所需的软件包

ubuntu:
apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev

centos:
yum install zlib zlib-devel
yum install libjpeg libjpeg-devel
yum install freetype freetype-devel

3.download Image并安装

wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
tar xzvf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# if the sys is x64, you must also do this: edit the setup.py file and set:
# centOS:
TCL_ROOT = '/usr/lib64'
JPEG_ROOT = '/usr/lib64'
ZLIB_ROOT = '/usr/lib64'
TIFF_ROOT = '/usr/lib64'
FREETYPE_ROOT = '/usr/lib64'
LCMS_ROOT = '/usr/lib64'
# Ubuntu:
TCL_ROOT = '/usr/lib/x86_64-linux-gnu'
JPEG_ROOT = '/usr/lib/x86_64-linux-gnu'
ZLIB_ROOT = '/usr/lib/x86_64-linux-gnu'
TIFF_ROOT = '/usr/lib/x86_64-linux-gnu'
FREETYPE_ROOT = '/usr/lib/x86_64-linux-gnu'
LCMS_ROOT = '/usr/lib/x86_64-linux-gnu'
#then install it use:
python2.7 setup.py install

<强> 4。检查它是否有效

# before this command you should run `mv PIL PIL2`

python2.7 selftest.py

如果结果是:

--- PIL CORE support ok
--- TKINTER support ok
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
--- FREETYPE2 support ok
*** LITTLECMS support not installed
--------------------------------------------------------------------
Running selftest:
--- 57 tests passed.

恭喜!