简短解释
这是因为Pillow软件包没有带来所需的库。这是您需要注意的事情。因此,JPEG支持(以及其他文件格式)不可用。
要验证这一点,请在安装Pillow后查看设置摘要。如果您没有这个,请重新安装软件包,摘要将显示出来。
$ 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,否则您将遇到错误:找不到vcvarsall.bat。
然后从独立JPEG组下载jpeg库包,并将其提取到临时位置。
复制头文件
在jpeg软件包中查找三个名为
- jpeglib.h
- jmorecfg.h
- jconfig.h (编辑:需要创建,请参见评论)
并将它们复制到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\中。
清理并重新构建带有JPEG支持的Pillow
太棒了,现在我们只需要将刚刚构建的
Release\jpeg.lib复制到Python-libs目录中(可能是
"C:\Python34\libs\")。
注意:是"libs"而不是"Lib"。
再次安装Pillow包并注意设置摘要。现在可使用JPEG支持。
--- JPEG support available