我看到这个问题遍及整个Internet,我已经尝试了全部跟踪,但仍然无法使PIL正常工作。

我尝试通过以下方式象征性地链接zlib,jpeg等库:

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/

我尝试编辑setup.py文件,添加以下行:
add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")

实际上,运行$ sudo python setup.py install表明JPEG,ZLIB/PNG等支持可用。 (我同时安装了2.5和2.7版本,但两者都无法使用)
sudo python2.5 setup.py install
running install
running build
running build_py
running build_ext
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.5.6 (r256:88840, Feb  1 2012, 15:55:08)
              [GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
--- LITTLECMS support available

但是毕竟,我仍然收到decoder %s not available错误。

我机智。还有什么我可能想念的吗?

我的环境:
在VirtualBox VM中运行的64位Ubuntu 11.04

这是我测试PIL是否有效的方法
$ python
>>> from PIL import Image
>>> im = Image.open("photo.jpg")
>>> im.rotate(45)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1359, in rotate
  self.load()
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFile.py", line 189, in load
  d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 385, in _getdecoder
  raise IOError("decoder %s not available" % decoder_name)
IOError: decoder zip not available
>>>

最佳答案

与往常一样,使用包管理器:

sudo apt-get install python-imaging

一切都会为您处理。 packages可用。

除非软件包确实不存在,否则在任何Linux发行版中手动安装都是徒劳的。软件包维护者会花费时间来确保软件包能够正常工作和安装,没有必要重复他们的工作。特别是不要手动安装那些没有软件包优势的东西-无法自动更新,无法轻松删除等。

10-07 12:29
查看更多