Python系って、今配布されている2008とかだとコンパイルしてくれない。
Visual Studio 2003じゃないと許せないから2003使ってね、みたいなメッセージが出る。…なんて心が狭(ry
で、無理やりコンパイルする方法があったので備忘録。2003は無料じゃ手に入らないし。
こちらの記事で、コンパイル環境を作ります。まぁインストールですが。
[nmake.exe&cl.exe]無料で作るコマンドラインからのコンパイル環境(Visual Studio Express 2008版)
で、3つのファイルをダウンロードしてきます。
下のリンクはそれぞれ今(2008年12月)の最新版です。
1.PIL本体
Python Imaging Libraryから、PIL最新版の「Source Kit」をダウンロードします。
1.1.6(クリックでダウンロード)です。
2.Jpeg Lib(Jpegサポート用)
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz(クリックでダウンロード)
3.zlib(PNGサポート用)
http://www.zlib.net/zlib-1.2.3.tar.gz(クリックでダウンロード)
ダウンロードしたら、全部解凍します。
それぞれフォルダが作成されますので、JpegとzlibのフォルダをどちらもImagingのフォルダに放り込みます。
+Imaging-1.1.6
-jpeg-6b
-zlib-1.2.3
こんな感覚です。
次に、setup.pyがはじいてしまうVC++2008を環境設定とレジストリで回避します。
てかそんなフラグ見てるんだ。
環境変数の設定。
下の変数を作って、どちらも「1」を設定します。
DISTUTILS_USE_SDK
MSSDK
次にレジストリエディタ。
「ファイル名を指定して実行」で「regedit」
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworkをたどり、「新規」→「文字列値」で、
sdkInstallRootv1.1を作っておきます。値は入力しなくてOKです。
さて、コンパイルします。
Imaging-1.1.6の中にある設定を下のように変更します。
JPEG_ROOT = 'jpeg-6b'
ZLIB_ROOT = 'zlib-1.2.3'
最初はどちらもNoneになってるはず。
カレントフォルダをJpeg-6bにします。
で、「jconfig.vc」ファイルのファイル名を「jconfig.h」に変更してから、以下のコマンドでコンパイル。
nmake -f makefile.vc
だーっとログが流れます。警告も多いですがFatal Errorってのが出なければOKです。
次。カレントフォルダをzlib-1.2.3にします。
以下のコマンドでコンパイル。
nmake -f win32\Makefile.msc
Jpegほどじゃないですがログが流れますので終わるのを待ちましょう。
最後。Imaging Library。
カレントフォルダをImaging-1.1.6にします。
以下のコマンドでコンパイル。
python setup.py build
ログの最後の方に、こんなメッセージが出てればOK。
最後に、
python selftest.py
この処理を実行して、
57 tests passed.
と表示されれば完了です。
出典
http://d.hatena.ne.jp/moriyoshi/20070518/1179490110
http://www.freia.jp/taka/blog/392