Windows版PyGTKをWine環境にインストール
ここでは(テスト用途などで)Wine環境にWindows版PyGTKをインストールする作業を扱う。
必要なパッケージ
PyGTKのパッケージにはGTK+やPythonは付属しないため、先にインストールしておく必要がある。インストールするパッケージは下のようになる。
Python
PyGTK側で対象のPythonのバージョンが決まっているため、先にPyGTKの公式ページからファイル一覧のページへ飛んでファイル名を確認してからそのバージョンのPythonをPython本体のダウンロードページから選択し、ダウンロード後インストールする。インストール先は標準のC:\Python[バージョン]\とする。
「Windows版のPythonをWineで動かす」も参照。
GTK+
PyGTKのダウンロードページには「Glade/Gtk+ for Windows」プロジェクトのWindows版GTK+へのリンクがあり、インストーラを用いてGTK+をインストールすることができるのだが、Wineのバージョン1.1.14と1.1.15の時点ではインストールの途中で確実に失敗する(gtk-2.12.9-win32-2.exeで確認)。この問題については
bugs.winehq.org/show_bug.cgi?id=13394
に既にパッチがあるのでWineのソースを用いて修正版をビルドすることで回避することができる。このパッチはバージョン1.1.14と1.1.15の両方のソースツリーに対して正常に適用できることを確認済み。
(2015/1/8)この問題はWineのバージョン1.1.39で修正されている。
あるいは、GTK+の本家が配布しているWindows版パッケージを利用する。こちらはZIPファイルにまとめられているため、インストーラによるトラブルはないが、その代わりに手動でファイルをWine環境(のCドライブ内)へ配置することになる。「All-in-one bundle」のパッケージは開発パッケージも一緒に入ってしまうが手間はかからない。下にある「GTK+ individual packages」と「Third Party Dependencies」からパッケージを個別にダウンロードしてもOK。
GTK+のレジストリ
GTK+本家サイトからZIPファイルをダウンロードして展開しただけではGTK+のDLLが利用できず、モジュールの初期化に失敗する(importできない)。「Glade/Gtk+ for Windows」のインストーラを使用した場合に設定されたレジストリ項目をもとに以下のレジストリファイルを作成したので、これをWineのレジストリエディタ(regedit)に読み込ませればOK(バージョン情報部分は実際のバージョンに合わせる・GTK+のインストール先はC:\GTKとする)。
REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment] "GTK_BASEPATH"="C:\\GTK" "PATH"=hex(2):25,47,54,4b,5f,42,41,53,45,50,41,54,48,25,5c,62,69,6e,3b,43,3a,\ 5c,77,69,6e,64,6f,77,73,5c,73,79,73,74,65,6d,33,32,3b,43,3a,5c,77,69,6e,64,\ 6f,77,73,00 [HKEY_LOCAL_MACHINE\Software\GTK\2.0] "DllPath"="C:\\GTK\\bin" "Path"="C:\\GTK" "VendorVersion"="x.x.x-x" "Version"="x.x.x"
上半分の「hex(2)」のところの項目では「%GTK_BASEPATH%\bin;C:\windows\system32;C:\windows」をWine上のPATHに指定している。
PyGTK
PyGTKのページからダウンロードした- pygobject-[バージョン].win32-py[対象のPythonのバージョン].exe
- pycairo-[バージョン].win32-py[対象のPythonのバージョン].exe
- pygtk-[バージョン].win32-py[対象のPythonのバージョン].exe
のそれぞれをWineで実行してインストールする。
上記ファイルのバージョンによってはこのインストーラが動かないことがあるが、これらはunzipで展開できることが分かった。中身は以下となる。
- DATA: このディレクトリ以下を[Pythonのインストールディレクトリ]\以下にコピー・ただしlib/以下は[Pythonのインストールディレクトリ]\Lib\以下に入る
- PLATLIB: このディレクトリ以下を[Pythonのインストールディレクトリ]\Lib\site-packages\以下にコピー
- SCRIPTS: 中のpy[名前]_postinstall.pyがインストール後に実行される・これらはWine環境内のWindows版Pythonで実行する
テスト
ファイルの配置や設定が終了したら適当なスクリプトを下のようにして試す。$ wine "C:\Python[バージョン]\python.exe" [スクリプトの場所]
使用したバージョン(組み合わせ)