Python上有PIL和Libjpeg在Leopard上

时间:2008-10-30 06:00:14

标签: python python-imaging-library libjpeg python-install

我在使用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。

5 个答案:

答案 0 :(得分: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后,它工作正常。

答案 1 :(得分:1)

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

在Imaging-1.1.6 subdir中的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根目录中的include和lib路径

答案 2 :(得分:0)

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

如果是,则需要将其修改为指向新位置。

当你编译新版本的PIL时,它说它找到了libjpeg吗?它会在没有它的情况下愉快地编译(iirc),并且你会看到麻烦的第一个迹象是在包含时间。

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

差异可能不适合你。你应该测试一些,然后再提交一个bug。

答案 3 :(得分:0)

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

OP中引用的指令的直接链接是here

答案 4 :(得分:0)

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

您可以使用一些工具来诊断问题:

1.检查if jpeg lib architcture是否符合您的机器架构:

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.最后,尝试从python“site-package”目录中删除所有以前安装的PIL *以确保设置正常工作

python setup.py install

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

./configure CFLAGS="-arch i386" --enable-shared --enable-static