55

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

""decoder jpeg not available""

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

4

8 回答 8

73

我从作者“edward”那里找到了这个答案

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

对于 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 操作系统

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 和命令行工具。阅读如何做到这一点

于 2012-09-06T13:24:13.437 回答
60

您需要先安装 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
于 2011-01-08T07:05:35.843 回答
20

可以在使用 libjpeg 在 vi​​rtualenv 上安装 pil找到更强有力的答案

对我来说,最终在 Ubutu 上起作用的是:

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

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

于 2012-01-19T21:34:24.387 回答
6

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

pip uninstall pil
pip install pillow

显然枕头能够找到对 jpeg 的支持。

于 2013-02-12T19:37:11.407 回答
3

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

于 2013-03-16T21:50:28.230 回答
3

您的 Imaging 安装文件夹中有一个 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
于 2013-10-28T03:29:21.517 回答
0

您可以从源代码构建 PIL:http: //effbot.org/zone/pil-decoder-jpeg-not-available.htm

于 2011-01-08T04:02:21.967 回答
0

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

于 2016-01-02T11:36:39.837 回答