简短说明
这是因为 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 库包,解压到一个临时位置。
复制头文件
在 jpeg 包中搜索三个名为
- jpeglib.h
- jmorecfg.h
- jconfig.h(编辑:需要创建,见注释)
并将它们复制到Python 安装目录的包含文件夹中(可能是"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\")。
注意: “库”,而不是“库”。
再一次,安装 Pillow 包并注意设置。JPEG 支持现在可用。
--- JPEG support available