11

我不能使用 PIL,因为它找不到我的 libjpeg!

首先,我默认安装了 PIL。当我运行时selftest.py,它给了我:

IOError: decoder jpeg not available 1
items had failures:    1 of  57 in
selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.

然后,我按照在线说明将 PIL 更改setup.py

JPEG_ROOT = "/usr/lib"

因为当我locate libjpeg,这就是我得到的:

locate libjpeg 
/usr/lib/libjpeg.so.62
/usr/lib/libjpeg.so.62.0.0
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.0.0
/usr/share/doc/libjpeg-6b
/usr/share/doc/libjpeg-6b/README
/usr/share/doc/libjpeg-6b/usage.doc
/var/cache/yum/base/packages/libjpeg-6b-37.i386.rpm
/var/cache/yum/base/packages/libjpeg-6b-37.x86_64.rpm

所以,我又跑setup.py install了……然后跑了selftest.py。我仍然得到同样的错误!

4

5 回答 5

19

您至少需要安装 3 个标头集。1 如果你想处理 Tiff 的

freetype、libjpeg、zlib 所有这些都将在 CentOS 上的以下软件包中:

== 32 位:zlib-devel.i386 libjpeg-devel.i386 freetype-devel.i386

== 64 位:zlib-devel.x86_64 libjpeg-devel.x86_64 freetype-devel.x86_64

正如您之前所做的那样,您需要在 setup.py 文件中编辑以下变量:

FREETYPE_ROOT JPEG_ROOT ZLIB_ROOT

根据您的平台将值设置为 /usr/lib 或 /usr/lib64。完成后,您很可能想要运行

python setup.py build --force
python setup.py install

这将强制为 PIL 重建所有库并重新安装它们。

于 2009-09-28T21:09:49.187 回答
3

您还需要 libjpeg 标头,而不仅仅是库本身。这些包通常称为以 headers 或 dev 结尾的东西,具体取决于您拥有的发行版。

于 2009-09-28T10:00:17.230 回答
3

我遇到过同样的问题。就我而言,我需要设置:

JPEG_ROOT="/usr/lib64/"

代替:

JPEG_ROOT="/usr/lib/"

祝你好运。

于 2012-03-05T20:42:49.903 回答
1

您也可以尝试使用Pillow而不是 PIL。

Pillow 是 PIL 的一个分支,旨在“促进 PIL 的积极发展”。在 1.7.0 和 1.7.1 版本中,他们进行了一些更改以支持多架构(请参阅更改日志)。

于 2013-03-19T11:41:54.143 回答
0

今天我遇到了同样的问题,我找到了解决方案。基本上它涉及删除 PIL,通过 Fink 安装 lipjpeg 并重新安装 PIL。

我写了一篇文章一步一步地告诉如何做到这一点。如果有趣,请查看。

于 2011-10-20T17:11:33.210 回答