2011-01-08 38 views
51

我試圖用PIL在PIL的django應用程序中做一些JPEG工作,但我得到這個IOError ..不知道該怎麼做。PIL/JPEG庫/幫助!

""decoder jpeg not available"" 

我錯過了我的服務器上的JPEG解碼器嗎?如果是這樣,我該如何解決它?

+0

我發現這篇文章,它真的幫助我:http://obroll.com/install-python-pil-python-image-library-on-ubuntu-11-10-oneiric/ – kschaeffler 2012-09-12 16:45:24

+0

可能的重複[Python圖像庫失敗,消息「解碼器JPEG不可用PIL」](http://stackoverflow.com/questions/8915296/python-image-library-fails-with-message-decoder-jpeg-not-available-pil) – neves 2013-10-09 23:52:54

回答

54

您需要首先安裝JPEG庫,並重新安裝PIL。例如,我使用CentOS的,安裝的libjpeg,我跑

sudo yum install -y libjpeg-devel 

這取決於你使用的是什麼樣的Linux。在這裏,你必須刪除舊的PIL

rm -rf /usr/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg/ 

然後安裝PIL

sudo easy_install PIL 
0
+0

I確實,但運行它仍然告訴我,自檢.. 從線#預計selftest.testimage 的24:( 'JPEG', 'RGB',(128,128)) 了:JPEG解碼器無法使用 1項失敗: 1 of 57 in selftest.testimage *** Test失敗*** 1失敗。 *** 1次57次測試失敗。 – 2011-01-08 04:03:23

+0

我假設整個./configure --with-jpeg =/somelib/lib --with-zlib =/somelib/lib行意味着我需要去取一個coppe的jpeg庫 – 2011-01-08 04:05:27

+0

是的,但是你可能用你的軟件包管理器來做這件事,例如在Ubuntu上:「apt-get install libjpeg-dev」。 – TryPyPy 2011-01-08 04:08:32

20

更強的答案可以在install pil on virtualenv with libjpeg

對於我來說什麼終於摸索上Ubutu是找到:

pip uninstall PIL 
sudo apt-get install libjpeg8-dev 
pip install PIL 

Python成像庫(PIL)似乎對版本非常挑剔和jpeg庫的位置。由於PIL是用C語言編寫的,所以除了運行時版本之外,還需要庫的版本。

+0

up up upvote。這對我有效。 – 2012-09-13 14:45:24

72

我發現從作者的「愛德華」

在Ubuntu精確的這個答案,PIL沒有找到JPEG庫文件,甚至一旦被安裝。解決這個問題的最簡單方法是在安裝jpeg dev軟件包後創建符號鏈接。所以,我需要一個額外的步驟:

爲x64操作系統

pip uninstall PIL 
sudo apt-get install libjpeg8-dev 
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib 
pip install PIL 

爲X32 OS

pip uninstall PIL 
sudo apt-get install libjpeg8-dev 
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib 
pip install PIL 

我確認這是爲我工作在Ubuntu Linux 12.04。


如果你是一個Mac的用戶 - 你需要安裝Xcode和命令行工具。 Read how to do this

6

我沒有sudo權限,因爲我在共享的bluehost服務器上。所以我不能運行任何這些sudo apt-get jpeg命令。我結束了運行

pip uninstall pil 
pip install pillow 

和顯然枕頭能夠找到支持jpegs。

3

。在你的影像安裝文件夾中selftest.py,嘗試:

python selftest.py 

,你會看到這樣的事情:

-------------------------------------------------------------------- 
*** PIL CORE support not installed 
*** TKINTER support not installed 
--- JPEG support ok 
--- ZLIB (PNG/ZIP) support ok 
*** FREETYPE2 support not installed 
*** LITTLECMS support not installed 
-------------------------------------------------------------------- 

如果JPEG的支持不可用,Centos下:

yum install libjpeg-devel 
yum install freetype-devel 
yum install libpng-devel 
0

在Debian發行版使用中的libjpeg62渦輪增壓-DEV的libjpeg8代替德的v