2011-01-08 43 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