我知道这是一个老问题,但我想给出我的答案,以防人们遇到和我一样的问题。
Christoph Gohlke 的作品在工作时非常棒。然而,对于我的带有 python 2.7 和最重要的是 64 位的 win7 机器,没有支持 PNG 的预编译二进制文件(zlib 支持)。该页面上的 Pillow 64 位二进制文件在 easy_install 上失败,无法安装在我的机器上。
因此,如果您想解决这个问题并且二进制文件不起作用,您需要使用 zlib 支持构建您自己的 Pillow。为此,您需要下载最新的 Pillow 源代码。在 setup.py 中修改 ZLIB_ROOT 行说:
ZLIB_ROOT = './zlib'
现在您还必须为 win64 位构建 zlib,这是棘手的部分。从他们的站点下载最新的 zlib 源代码(我在 1.2.5/1.2.8 上测试过)。打开 64 位的 Visual Studio 命令提示符(非常重要) 我的命令提示符称为 VS2012 x64 Cross Tools 命令提示符。
转到 zlib 源目录并运行:
nmake -f win32/Makefile.msc
如果它不起作用,请尝试:
nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF" OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
现在您应该在源目录中有以下文件:
zlib.h
zconf.h
zutil.h (not sure this is needed)
zlib.lib
zdll.lib
将它们复制到 Pillow 源目录中,进入一个名为“zlib”的目录 使用"python setup.py build_ext -i"
Install Pillow 编译 Pillow 使用"python setup.py install"
Pillow 现在应该支持 ZLIB (png)。如果你有一些旧的 Pillow/PIL 安装,你可能需要手动将 _imaging.pyd 和 _imagingmath.pyd 复制到你的 python 或虚拟环境的包安装文件夹中,以确保你有新编译的。
您现在可以导入 _imaging 并且您有 png 支持。
如果需要,您也可以以相同的方式添加 Libjpeg,手动编译它。
希望这可以帮助遇到此问题的任何人。