2

PythonプログラムをOSXからWindows7に移植しようとしています。このプログラムはtkinterでpngを処理します。

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

コードはIOErrorで失敗します:デコーダーzipは利用できません

pypmでpipをインストールしてみました。次に、pipでビルドしてみます。ビルドプロセスの最後に、png/zlibがサポートされていないことが報告されます

Windowsへのpython.orgのインストールでも同じエラーが発生します。

私は立ち往生していて、Cライブラリの構築に熟練していません。ピップがどのように機能するかもわかりません。gnu zlibライブラリをインストールしていますが、まったく役に立ちません。Visual C ++ 2008 Expressをインストールしましたが、pipは正常にコンパイルされるため、少なくともそれは機能しています。

4

2 に答える 2

7

ChristophGohlkeによって管理されているビルドをここで試してください。自分でPILをビルドするには、READMEに記載されているように、libjpeg、zlib、freetype2、littleCMSなどのいくつかのライブラリが必要です。Visual C ++またはMinGWを使用してzlibにリンクする手順については、zlib125-dll.zipのUSAGE.txtをお読みください。

于 2011-10-01T04:20:31.110 に答える
5

これは古い質問だと思いますが、私と同じ問題が発生した場合に備えて、答えを出したいと思います。

Christoph Gohlkeによるビルドは、機能するときに素晴らしいものです。ただし、Python 2.7および最も重要な64ビットを搭載したwin7マシンの場合、PNGサポート(zlibサポート)を備えたプリコンパイル済みバイナリはありません。そのページのPillow64ビットバイナリはeasy_installで失敗し、私のマシンにインストールできません。

したがって、これを解決したいのにバイナリが機能しない場合は、zlibサポートを使用してPillowをビルドする必要があります。これを行うには、最新のPillowソースをダウンロードする必要があります。setup.pyでZLIB_ROOT行を次のように変更します。

ZLIB_ROOT = './zlib'

ここで、win64ビット用のzlibもビルドする必要があります。これは、注意が必要な部分です。彼らのサイトから最新のzlibソースをダウンロードします(私は1.2.5 / 1.2.8でテストしました)。64ビット用のVisualStudioコマンドプロンプトを開きます(非常に重要)私のコマンドプロンプトはVS2012 x64 Cross ToolsCommandPromptと呼ばれていました。

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" ます。InstallPillowを使用してPillowをコンパイルします。"python setup.py install"

PillowはZLIB(png)サポートで動作するはずです。古いPillow/PILをインストールしている場合は、_imaging.pydと_imagingmath.pydをPythonまたは仮想環境のパッケージインストールフォルダーに手動でコピーして、新しくコンパイルされたものがあることを確認する必要があります。

これで_imagingをインポートでき、pngがサポートされます。

同じ方法でLibjpegを追加し、必要に応じて手動でコンパイルすることもできます。

これがこの問題に遭遇した人に役立つことを願っています。

于 2013-06-19T12:18:41.917 に答える