windows 7 ZLIB(png/ZIP)上的pil png activestate不支持

2024-06-30 08:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个python程序从osx移植到windows7。 这个程序用tkinter处理一个png 例如

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

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

我试过用pypm安装pip。 然后我试着用pip构建它。 在构建过程的最后,它报告说不支持png/zlib

我也有同样的错误python.org网站在Windows上安装。在

我被卡住了,我不擅长构建C库。我也不知道皮普是怎么工作的。我安装了一个gnuzlib库,但它一点帮助也没有。我安装了Visual C++ 2008 Express,至少这是工作的,因为PIP确实成功地编译了东西。在


Tags: pip代码imageself程序pngtkinteropen
2条回答

尝试由Christoph Gohlke维护的构建here。为了自己构建PIL,您需要自述文件中提到的几个库:libjpeg、zlib、freetype2和littleCMS。阅读用法.txt在{a2}中,用VisualC++或MinGW链接到ZLIB的指令。在

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

克里斯托夫·高尔克的建筑非常棒,当他们工作的时候。 但是,对于我的win7机器,python2.7和最重要的64位,没有预编译的二进制文件支持PNG(zlib支持)。该页面上的Pillow 64位二进制文件在easy帴install上失败,无法安装在我的机器上。在

因此,如果你想解决这个问题,而二进制文件不起作用,你需要用zlib支持构建自己的枕头。要做到这一点,你需要下载最新的枕头来源。 在中修改设置.pyZLIB_根行表示:

ZLIB_ROOT = './zlib'

现在您还必须为win64位构建zlib,这是比较棘手的部分。 从他们的站点下载最新的zlib源代码(我在1.2.5/1.2.8上测试过)。 64位提示(非常重要的visual studio命令) 我的命令提示符名为VS2012 x64 Cross-Tools命令提示符。在

转到zlib source dir并运行:

^{pr2}$

如果不起作用,请尝试:

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"编译枕头 使用"python setup.py install"安装枕头

枕头现在应该与ZLIB(png)支持一起工作。 如果您有一些旧的枕头/PIL安装,您可能需要手动复制_成像.pyd以及_imagingmath.pyd到python或虚拟环境的包安装文件夹中,以确保有新编译的包。在

现在您可以导入图像,并支持png。在

您也可以用同样的方法添加Libjpeg,如果需要,可以手动编译它。在

希望这能帮助任何遇到这个问题的人。在

相关问题 更多 >