PIL / JPEG库:“解码器jpeg不可用”

时间:2011-01-08 04:00:19

标签: python django python-imaging-library redhat libjpeg

我尝试使用PIL在我的django应用程序中使用PIL进行一些JPEG工作但是我得到了这个IOError ..不知道该怎么做。

""decoder jpeg not available""

我是否错过了服务器上的JPEG解码器?如果是这样,我该如何解决?

8 个答案:

答案 0 :(得分:72)

我从作者“edward”

中找到了这个答案

在Ubuntu上,PIL没有找到jpeg库文件,即使它们已经安装完毕。解决此问题的最简单方法是在安装jpeg dev软件包后创建符号链接。所以,我需要一个额外的步骤:

for x64 OS

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

for 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

答案 1 :(得分:56)

您需要先安装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

答案 2 :(得分:20)

可以在install pil on virtualenv with libjpeg

找到更强的答案

对我来说,最终在Ubutu工作的是:

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

Python Imaging Library(PIL)似乎对jpeg库的版本和位置非常挑剔。由于PIL是用C编写并编译的,因此除了运行时版本之外,还需要库的 开发 版本。

答案 3 :(得分:6)

我没有sudo权限,因为我在共享的bluehost服务器上。所以我无法运行任何sudo apt-get jpeg命令。我最终跑了

pip uninstall pil
pip install pillow
显然,枕头能够找到对jpeg的支持。

答案 4 :(得分: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

答案 5 :(得分:2)

对于mac的用户,您可以从此处下载库:http://ethan.tira-thompson.com/Mac_OS_X_Ports.html。然后,卸载并安装PIL

答案 6 :(得分:0)

答案 7 :(得分:0)

在Debian发行版上使用libjpeg62-turbo-dev而不是libjpeg8-dev