2011-09-30 40 views
1

我在Mac OS X上安裝了Sage。它看起來像有PIL。以下代碼給我一個IOError ..告訴聖人在哪裏可以找到libjpeg

import Image 
a = Image.open("pic.jpg") 
a.thumbnail((int(100), int(100))) 

這是我得到的錯誤。

IOError         Traceback (most recent call last) 

<ipython console> in <module>() 

/sage/local/lib/python2.6/site-packages/PIL/Image.pyc in thumbnail(self, size, resample) 
    1520   self.draft(None, size) 
    1521 
-> 1522   self.load() 
    1523 
    1524   try: 

/sage/local/lib/python2.6/site-packages/PIL/ImageFile.pyc in load(self) 
    178 
    179    for d, e, o, a in self.tile: 
--> 180     d = Image._getdecoder(self.mode, d, a, self.decoderconfig) 
    181     seek(o) 
    182     try: 

/sage/local/lib/python2.6/site-packages/PIL/Image.pyc in _getdecoder(mode, decoder_name, args, extra) 
    373   return apply(decoder, (mode,) + args + extra) 
    374  except AttributeError: 
--> 375   raise IOError("decoder %s not available" % decoder_name) 
    376 
    377 def _getencoder(mode, encoder_name, args, extra=()): 

IOError: decoder jpeg not available 

看來,對我來說,它無法找到libjpeg。我在我的機器上檢查了MacPorts,&它看起來已經安裝了jpeg軟件包。我還在/ opt/local/lib中找到了libjpeg。我嘗試在Sage腳本&中使用os庫操作LD_LIBRARY_PATH,但都無法擺脫此錯誤。我在互聯網上搜索如何讓PIL找到libjpeg,但是我發現涉及修改setup.py重建PIL。聖人似乎不包括PIL的setup.py。

還有誰遇到過這個問題&解決了嗎?也許有人熟悉w/PIL?

回答

1

答案是重新安裝PIL。

sage.misc.package.install_package("pil", force=True) 

就是這麼簡單&它只需要一分鐘。在我的機器上重新安裝它可能使它能夠在我的機器上找到這些庫的位置。

相關問題