我正在开发一个Django项目,最近遇到了一个令人讨厌的问题。我在我的Windows计算机上安装了Pillow库,当我尝试在我的Django模板中显示图像时意外地抛出了OSError。
OSError:解码器jpeg不可用
我该如何解决这个问题?
这是我提交的第二次投票。所以我觉得不得不提到以下内容(我很自豪!):
答案 0 :(得分:9)
这是因为Pillow包没有带来所需的库。这是你需要照顾的事情。因此,JPEG支持(以及其他文件格式)不可用。
要验证这一点,请在安装Pillow后查看设置摘要。如果你没有这个,simplay将重新安装包,并显示摘要。
$ sudo pip uninstall Pillow
$ sudo pip install Pillow
在摘要中我们看到我在Windows 8.1上安装了Pillow 2.3.1版。最重要的是,我们发现不支持JPEG和PNG(ZLIB)图像文件。
--------------------------------------------------------------------
PIL SETUP SUMMARY
--------------------------------------------------------------------
version Pillow 2.3.1
platform win32 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:24:06
[MSC v.1600 32 bit (Intel)]
--------------------------------------------------------------------
*** TKINTER support not available
(Tcl/Tk 8.6 libraries needed)
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** LIBTIFF support not available
*** FREETYPE2 support not available
*** LITTLECMS2 support not available
*** WEBP support not available
*** WEBPMUX support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
在Linux上,只需安装软件包 libjpeg-dev 并重新安装Pillow库。
但是由于我们正在使用Windows,我们需要更深入一点:我们需要下载jpeg库源代码来提供头文件并自行构建库文件。也做一些复制和粘贴。
您需要安装Visual C++ 2010 Express。无论如何,您首先需要它来构建Pillow,否则您最终会得到错误:Unable to find vcvarsall.bat。
然后从Independent JPEG Group下载jpeg library package并将其解压缩到临时位置。
在jpeg包中搜索名为
的三个文件并将它们复制到Python安装目录的 include 文件夹中(可能是" C:\ Python34 \ include \" )
为了能够完成后续步骤,请运行vcvarsall.bat。这将为PATH变量添加所有必需的目录。默认情况下,您在" C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat"
中找到此文件现在打开一个命令行,找到之前解压缩jpeg库源的目录。执行以下两个命令:
> nmake /f makefile.vc setup-v10
> msbuild jpeg.sln
第二个命令构建所需文件并将它们放在新创建的子目录 \ Release \ 中。
太棒了,现在我们只需要将新构建的 Release \ jpeg.lib 复制到我们的Python-libs目录中(可能是" C:\ Python34 \ libs \&# 34; )。 注意:" libs",not" Lib"。
再次安装Pillow包并负责设置夏季。现在可以使用JPEG支持。
--- JPEG support available