簡體   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