繁体   English   中英

在Windows 7上的pil png activestate ZLIB(PNG / ZIP)支持不可用

[英]pil png activestate on windows 7 ZLIB (PNG/ZIP) support not available

我正在尝试将一个python程序从OS X移植到Windows 7.该程序使用tkinter处理png,例如

self.logoImg = ImageTk.PhotoImage(Image.open('GrowthPathLogo.png'))

代码失败,IOError:解码器zip不可用

我尝试用pypm安装pip。 然后我尝试用pip构建它。 在构建过程结束时,它报告不支持png / zlib

我在Windows上安装了python.org时遇到了同样的错误。

我被困住了,我不擅长构建C库。 我也不知道pip是如何工作的。 我安装了一个gnu zlib库,但它根本没有帮助。 我安装了Visual C ++ 2008 Express,至少可以正常工作,因为pip会成功编译。

尝试构建这里多数民众赞成由克里斯托夫Gohlke维护。 要自己构建PIL,您需要在README中提到的几个库:libjpeg,zlib,freetype2和littleCMS。 请阅读zlib125-dll.zip中的USAGE.txt,以获取有关使用Visual C ++或MinGW链接到zlib的说明。

我知道这是一个老问题,但我想给出答案,以防人们遇到与我相同的问题。

当他们工作时,Christoph Gohlke的构建非常棒。 但是对于我的带有python 2.7和最重要的64位的win7机器,没有预编译的二进制文件支持PNG(zlib支持)。 该页面上的Pillow 64bit二进制文件在easy_install上失败,无法在我的机器上安装。

因此,如果你想解决这个并且二进制文件不起作用,你需要使用zlib支持来构建Pillow你的自我。 为此,您需要下载最新的枕头来源。 在setup.py中修改ZLIB_ROOT行说:

ZLIB_ROOT = './zlib'

现在你必须为win64位构建zlib,这是棘手的部分。 从他们的网站下载最新的zlib源代码(我在1.2.5 / 1.2.8上测试过)。 打开64位的visual studio命令提示符(非常重要)我的命令提示符称为VS2012 x64交叉工具命令提示符。

转到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

将它们复制到枕头源目录,为使用名为“zlib的”编译枕头目录"python setup.py build_ext -i"枕头使用安装"python setup.py install"

枕头现在应该与ZLIB(png)支持一起使用。 如果您安装了一些较旧的Pillow / PIL,则可能需要手动将_imaging.pyd和_imagingmath.pyd复制到python或虚拟环境的软件包安装文件夹中,以确保您拥有新编译的软件包。

您现在可以导入_imaging并获得png支持。

您也可以以相同的方式添加Libjpeg,如果需要,可以手动编译它。

希望这有助于遇到此问题的任何人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM