PIL无法识别Mac OS下的jpeg库

时间:2012-08-05 22:37:48

标签: python macos python-imaging-library

这样的脚本:

from PIL import Image, ImageOps
img = Image.open('1.JPG')
thumb = ImageOps.fit(img, (200,200) , Image.ANTIALIAS, (0.5, 0.5))

导致此IOError:

Traceback (most recent call last):
  (...)
  File "/Library/Python/2.7/site-packages/PIL/Image.py", line 385, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available

如何获得我的PIL的jpeg支持?这个问题似乎众所周知,但现有的线程并没有为我解决。我使用brew和pip作为我的python包,并且已经尝试了以下内容:

  • brew install jpeg 导致Error: jpeg-8d already installed
  • brew install libjpeg导致Error: jpeg-8d already installed
  • sudo pip install Pillow - 安装有效,但不会改变任何内容

如何获得我的PIL安装的jpeg支持?有什么想法吗?

3 个答案:

答案 0 :(得分:8)

我不明白为什么,但重新安装PIL解决了这个问题:

sudo pip uninstall pil
sudo pip install pil

答案 1 :(得分:0)

我在Ubuntu 12.04 64位上遇到了类似的问题并通过符号链接PIL正在寻找/usr/lib(它实际上正在寻找它们)的库来解决它:

# symlink image libraries so PIL can find them
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib
# etc for any other libraries

答案 2 :(得分:0)

对于登陆此处的非OSX人员,我在64位Ubuntu系统上的64位库中找到linking来修复编译问题。