2009-09-28 85 views
11

我無法使用PIL,因爲它無法找到我的libjpeg!Python PIL找不到我的「libjpeg」

首先,我安裝了PIL默認。而當我跑了selftest.py,它給了我:

IOError: decoder jpeg not available 1 
items had failures: 1 of 57 in 
selftest.testimage 
***Test Failed*** 1 failures. 
*** 1 tests of 57 failed. 

於是,我跟着聯機說明更改PIL的setup.py

JPEG_ROOT = "/usr/lib" 

因爲當我locate libjpeg,這就是我得到:

locate libjpeg 
/usr/lib/libjpeg.so.62 
/usr/lib/libjpeg.so.62.0.0 
/usr/lib64/libjpeg.so.62 
/usr/lib64/libjpeg.so.62.0.0 
/usr/share/doc/libjpeg-6b 
/usr/share/doc/libjpeg-6b/README 
/usr/share/doc/libjpeg-6b/usage.doc 
/var/cache/yum/base/packages/libjpeg-6b-37.i386.rpm 
/var/cache/yum/base/packages/libjpeg-6b-37.x86_64.rpm 

所以,我再次運行setup.py install ...並做了selftest.py。 而我仍然有同樣的錯誤!

回答

19

您至少需要安裝3個標頭集。

== 32位: 的zlib-devel.i386 的libjpeg-devel的,如果你要處理的Tiff的

的FreeType,的libjpeg,zlib的所有這些都將在下面的包在CentOS 1以上。 I386 的FreeType-devel.i386

== 64位: 的zlib-devel.x86_64 的libjpeg-devel.x86_64 的FreeType-devel.x86_64

當你做之前,你需要編輯以下variabl在setup.py文件ES:

FREETYPE_ROOT JPEG_ROOT ZLIB_ROOT

設置有值/ usr/lib目錄或/ usr/lib64下根據你的平臺上。一旦完成,你很可能想要運行

python setup.py build --force 
python setup.py install 

這將強制重建所有您的lib爲PIL並重新安裝它們原始。

+0

謝謝! FWIW,這就是我所做的(在一個64位盒子上):'sudo yum install zlib-devel.x86_64 libjpeg-devel.x86_64 freetype-devel.x86_64'然後'sudo pip install pil'(這需要你有pip軟件包管理器已經安裝。) – DPlusV 2011-04-26 06:35:39

3

您還需要libjpeg頭文件,而不僅僅是庫本身。這些軟件包通常被稱爲以header或dev結尾的內容,具體取決於您擁有的分發版本。

+0

謝謝。 如何獲取標題? 我有CentOS發行版。 我做了「找到libjpeg」,找不到以.headers結尾的任何東西 – TIMEX 2009-09-28 10:03:29

+2

他們似乎在CentOS上被稱爲libjpeg-devel。 – 2009-09-28 10:20:50

+0

使用'包管理工具'來安裝'libjpeg-devel'。請注意,可能還有其他需要爲其他格式安裝的'-devel'軟件包,例如。 '的libpng-devel'。 – bobince 2009-09-28 10:26:15

0

今天我面臨同樣的問題,我找到了解決方案。基本上它涉及到刪除PIL,通過Fink安裝lipjpeg並重新安裝PIL。

我寫了一個article告訴一步一步如何做到這一點。如果有興趣檢查一下。

+4

這篇文章的鏈接無效(已經)。 – 2013-03-19 11:44:33

3

我有同樣的問題。就我而言,我需要設置:

JPEG_ROOT="/usr/lib64/" 

代替:

JPEG_ROOT="/usr/lib/" 

好運。

1

您也可以嘗試使用Pillow代替PIL。

枕頭是PIL叉「促進PIL積極發展」。在版本1.7.0和1.7.1中,他們對支持多拱形進行了一些更改(請參閱changelog)。

+0

與Pillow相同的問題;(解決方案'JPEG_ROOT =「/ usr/lib64 /」'不能幫助枕頭 – 2015-11-20 23:03:20