3

我在获取 PIL 支持的图片时遇到了问题 - 它向我抛出了这个:

IOError: decoder jpeg not available

我从二进制安装了 PIL,没有意识到我需要 libjpeg。

我通过 fink 安装了 libjpeg 和 freetype2。

我尝试使用http://timhatch.com/(页面底部)的说明重新安装 PIL

  • 下载 PIL 1.1.6 源码包并安装好开发者工具
  • 用这个补丁给 setup.py 打补丁,这样它就可以找到你已经拥有的 Freetype。

    patch -p0 < leopard_freetype2.diff

  • sudo apt-get install libjpeg 如果你有 fink (否则,手动构建并调整路径)

但我仍然遇到同样的错误。

我在 Leopard PPC 上。

4

5 回答 5

1

我最近在需要 PIL 的产品 RHEL 盒子上部署 django 项目时遇到了类似的“jpeg 解码器问题”。我下载了 PIL,并立即运行了“python setup.py install”,并且很高兴一切正常,直到我遇到了问题。解决方法:系统上已经安装了libjpeg,所以我安装了libjpeg-devel。我回到了 PIL 的源代码并运行了“python setup.py build”,最后在输出中显示了 PIL configure 是否能够检测到对 jpeg、gif、freetype 等的支持,它说jpeg 支持还可以。安装 PIL 后,它工作正常。

于 2008-10-30T06:31:00.363 回答
1

我遇到了同样的问题,这个人的帖子为我提供了解决方案:

rm Imaging-1.1.6 子目录中的 PIL 子目录和 PIL.pth 文件

完整的细节在这里:

http://blog.tlensing.org/2008/12/04/kill-pil-%E2%80%93-the-python-imaging-library-headache/

这样做之后, selftest.py 工作正常。我还应该注意,我使用的是 jpeg 库的 macports 版本,并且我已经指定 JPEG_ROOT 指向我的 macports 根目录中的包含和 lib 路径

于 2009-08-10T02:24:39.820 回答
0

python 路径是否仍在查看 libjpeg 的旧二进制版本?

如果是,您将需要修改它以指向新位置。

当您编译新版本的 PIL 时,它是否说它找到了 libjpeg?没有它(iirc)它会很高兴地编译,你会看到的第一个麻烦迹象是在包含时间。

您需要在 ./configure 时调整路径。

差异可能不适合您。您应该进行更多测试,然后可能会提交错误。

于 2008-10-30T06:14:06.357 回答
0

如果您使用 libjpeg 构建,但自检失败,则您可能安装了另一个令人困惑的 PIL。尝试安装它,然后查看 selftest 是否有效。

OP中引用的指令的直接链接也在这里

于 2009-09-25T02:18:15.550 回答
0

我今天已经坚持这个问题好几个小时了。我的建议是不要一次又一次地反复试验,除非你能在前 15 分钟内解决问题。

有一些工具可以帮助您诊断问题:

1.检查 jpeg lib 架构是否与您的机器架构匹配:

file /usr/local/lib/libjpeg.7.dylib 

2.检查_imaging.so是否真的链接到你编译的jpeg lib

cd ImageSrc

python setup.py build_ext -i

otool -L PIL/_imaging.so 

3.尝试导入_imaging.so,看看有什么问题

cd PIL

python

import _imaging

4.finally,尝试从python“site-package”目录中删除所有以前安装的PIL*,以确保设置工作正常

python setup.py install

对我来说,这是由于我在雪豹上使用了 32 位 python,并通过这种方式安装 jpeg lib 解决了这个问题:

./configure CFLAGS="-arch i386" --enable-shared --enable-static
于 2010-12-26T13:34:05.027 回答