2022/09/13(火) [n年前の日記]
#1 [gimp][windows] Windows版 GIMP 2.6 でPython-Fuを動かしたい
Windows10 x64 21H2上で、Python-Fu (GIMP-Python) を動かせる GIMP 2.6 環境を用意したい。
自作の Python-Fuスクリプトが GIMP 2.6上でも動くのか確認したかったので、動作確認環境として持っておかないとアレだなと。もっとも、今現在は GIMP 2.10 が現行版なので、今から GIMP 2.6 をあえて使う場面はほとんど無いだろうけど。
環境は、Windows10 x64 21H2 + Python 2.6.6 32bit + PyGTK all-in-one 2.24.2。ちなみに、普段は Python 3.9.13 64bit版をPATHに通しているので、Python と打ち込めば Python 3.9.13 64bit が実行される状態。
標準インストール版の GIMP 2.6.12、もしくは GIMP 2.6.12 Portable版でどうにかしたかったのだけど、それらの版ではPython-Fu を動作させることができなかったので、GIMP-painter- 2.6.11 を利用してみた。
自作の Python-Fuスクリプトが GIMP 2.6上でも動くのか確認したかったので、動作確認環境として持っておかないとアレだなと。もっとも、今現在は GIMP 2.10 が現行版なので、今から GIMP 2.6 をあえて使う場面はほとんど無いだろうけど。
環境は、Windows10 x64 21H2 + Python 2.6.6 32bit + PyGTK all-in-one 2.24.2。ちなみに、普段は Python 3.9.13 64bit版をPATHに通しているので、Python と打ち込めば Python 3.9.13 64bit が実行される状態。
標準インストール版の GIMP 2.6.12、もしくは GIMP 2.6.12 Portable版でどうにかしたかったのだけど、それらの版ではPython-Fu を動作させることができなかったので、GIMP-painter- 2.6.11 を利用してみた。
◎ Python 2.6のインストール。 :
GIMP 2.6 + Python-Fu は、Python 2.5 もしくは Python 2.6 を要求するので、インストールしておく。Python 2.6.6 は C:\Python\Python26\ にインストールした。
また、Python-Fu は PyGTK関係のモジュールも必要とするので、pygtk-all-in-one-2.24.2.win32-py2.6.msi もインストールした。
セットアップファイルの入手先は以下。
_Python Release Python 2.6.6 | Python.org
_Index of /binaries/win32/pygtk/2.24/
また、Python-Fu は PyGTK関係のモジュールも必要とするので、pygtk-all-in-one-2.24.2.win32-py2.6.msi もインストールした。
セットアップファイルの入手先は以下。
_Python Release Python 2.6.6 | Python.org
_Index of /binaries/win32/pygtk/2.24/
◎ GIMP-painter- 2.6.11 でPython-Fuを動かす。 :
GIMP-painter- は、GIMP 2.6 にペンタブレット描画時の調整機能を追加した版、という説明でいいのだろうか。あるいは混色ブラシが使えるようになった版とでもいうか…。まあ、現行版の GIMP 2.10 ではそれらの機能が取り込まれていた気がするけど…。
GIMP-painter- 2.6.11 の入手は以下。
_ダウンロードファイル一覧 - [旧]GIMP-painter - OSDN
以下の2つを入手。
実行して任意のフォルダに展開する。今回は、D:\Prog\GIMP-2.6.11-painter-\ に展開してみた。
中に入ってる run_gimp.wsf を実行すれば GIMP-painter- 2.6.11 が起動する。ただ、このままでは Python-Fu が利用できなかった。
自分の手元の環境では、C:\Python\Python26\ に Python 2.6.6 がインストールしてあるので…。この Python をGIMPから呼び出せるように、環境変数 PATH を若干変更するbatファイルを作成した。環境変数 GIMPPATH と PPATH だけ、各自の環境に合わせれば利用できるはず。
_gimppainetr.bat
加えて、 (GIMP-painter-インストールフォルダ)\home\.gimp-2.6\interpreters\ 以下に、pygimp.interp というテキストファイルを作成する。おそらく、GIMPから利用するインタプリタ言語の設定を記述するファイルだと思うけど…。内容は以下。pythonw.exe が置いてある場所を指定している。
_pygimp.interp
注意点。pygimp.interp は、改行コードを*NIXのソレに合わせてLFにしておくこと。Windowsの改行コード、CRLF になっていると、GIMPはこのファイルの解析に失敗する。
動作確認。gimppainetr.bat を実行して、フィルタ → Python-Fu → コンソール、を選んでコンソールが表示されれば Python-Fu が動いてる状態になっている。
GIMP-painter- 2.6.11 の入手は以下。
_ダウンロードファイル一覧 - [旧]GIMP-painter - OSDN
以下の2つを入手。
- gimp-painter--2.6.11_100627-4_win32_starter.exe
- gimp-painter--2.6.11_100627-4_win32_update.exe
実行して任意のフォルダに展開する。今回は、D:\Prog\GIMP-2.6.11-painter-\ に展開してみた。
中に入ってる run_gimp.wsf を実行すれば GIMP-painter- 2.6.11 が起動する。ただ、このままでは Python-Fu が利用できなかった。
自分の手元の環境では、C:\Python\Python26\ に Python 2.6.6 がインストールしてあるので…。この Python をGIMPから呼び出せるように、環境変数 PATH を若干変更するbatファイルを作成した。環境変数 GIMPPATH と PPATH だけ、各自の環境に合わせれば利用できるはず。
_gimppainetr.bat
@echo off set GIMPPATH=D:\Prog\GIMP-2.6.11-painter-\gimp-painter- set PPATH=C:\Python\Python26 set PATH=%PPATH%;%PPATH%\Scripts;%PATH% set PYTHONPATH=%PPATH%\Lib\site-packages set PYTHON_ROOT=%PPATH% echo. echo Add path [%PPATH%] echo Add path [%PPATH%\Scripts] echo PYTHONPATH=%PYTHONPATH% echo PYTHON_ROOT=%PYTHON_ROOT% echo. cd /d %GIMPPATH% run_gimp.wsf
加えて、 (GIMP-painter-インストールフォルダ)\home\.gimp-2.6\interpreters\ 以下に、pygimp.interp というテキストファイルを作成する。おそらく、GIMPから利用するインタプリタ言語の設定を記述するファイルだと思うけど…。内容は以下。pythonw.exe が置いてある場所を指定している。
_pygimp.interp
python=C:\Python\Python26\pythonw.exe /usr/bin/python=C:\Python\Python26\pythonw.exe :Python:E::py::python:
注意点。pygimp.interp は、改行コードを*NIXのソレに合わせてLFにしておくこと。Windowsの改行コード、CRLF になっていると、GIMPはこのファイルの解析に失敗する。
動作確認。gimppainetr.bat を実行して、フィルタ → Python-Fu → コンソール、を選んでコンソールが表示されれば Python-Fu が動いてる状態になっている。
◎ 通常インストール版 GIMP 2.6.12 でPython-Fuを利用。 :
もう少し色々試していたら、通常インストール版 GIMP 2.6.12 32bit でも、Python-Fu が利用できる状態になった。
GIMP 2.6 で Python-Fu を利用するための条件としては、おそらく以下を満たしておく必要があるのだろう…。これを踏まえつつ、GIMP 2.6 のインストール作業をしていけばよいのではないか。たぶん。
ひとまず、GIMP 2.6 や GIMP 2.8 は、インストーラを実行すると、今までSSD/HDD内に存在していたユーザーデータ用フォルダを平気で削除してくれちゃうので…。~/.gimp-2.6 や ~/.gimp-2.8 等を、一旦別の場所に移動してから作業を始めた。
Pythn 2.6.6 にPATHが通っている状態にしてから、GIMP 2.6.12 のインストーラ、gimp-2.6.12-i686-setup-2.exe を実行した。
GIMPのインストーラが Python 2.6 を見つけたので、インストールの途中で Python-Fu関係のファイルもインストール項目(「GIMP Python extension」) として表示された。もし、Python 2.6 が利用できない状態でインストーラを実行すると、該当項目はグレーアウトして選べない状態になるはず。さておき、チェックを入れてインストールを続行。
GIMP 2.6.12 インストール後、GIMPを実行。ユーザーデータ用のフォルダ、~/.gimp-2.6/ が作られた。GIMP を終了。
GIMP 2.6インストールフォルダ\lib\gimp\2.0\interpreters\pygimp.interp の内容を確認。利用したい Python (pythonw.exe) の場所が正しく指定されているか、また、改行コードが CRLF ではなくて LF になっているか確認する。
GIMP 2.6インストールフォルダ\lib\gimp\2.0\plug-ins\*.py を確認。もし、1行目に 「#!/usr/bin/env python」と書いてあったら、「#!/usr/bin/python」に書き換える。Windowsに /usr/bin/env というプログラムは無いので…。
GIMP起動用のbatファイルを作成。GIMPインストールフォルダ\bin\ あたりに入れておく。
_gimp-2.6.bat
このbatファイルを実行すると、Python 2.6.6 をPATHに追加してから、GIMP 2.6.12 を起動する。
余談。カレントディレクトリを %USERPROFILE% にしてから GIMP 2.6.12 を起動しないと、何故か Python-Fu が動いてくれなかった…。なんでだろ…。
さておき。GIMPが起動したら、フィルタ → Python-Fu → コンソール、を選択。コンソールウインドウが表示されたら、Python-Fu は利用できる。
GIMP 2.6 で Python-Fu を利用するための条件としては、おそらく以下を満たしておく必要があるのだろう…。これを踏まえつつ、GIMP 2.6 のインストール作業をしていけばよいのではないか。たぶん。
- GIMP 2.6インストール時に、Python 2.6.x が利用できる状態であること (Python 2.6にPATHが通っていること)。
- GIMP 2.6インストール時に、Python-Fu関係(GIMP-Python)のファイルもインストールすること。(「GIMP Python extension」にチェックを入れてインストール作業を進める。)
- GIMP 2.6起動時に、Python 2.6 が利用できる状態であること。
- GIMP 2.6インストールフォルダ\lib\gimp\2.0\interpreters\pygimp.interp で、Python 2.6への正しいパスが指定されていること。
- GIMP 2.6インストールフォルダ\lib\gimp\2.0\plug-ins\ 内の *.py で /usr/bin/env が記述されていないこと。
ひとまず、GIMP 2.6 や GIMP 2.8 は、インストーラを実行すると、今までSSD/HDD内に存在していたユーザーデータ用フォルダを平気で削除してくれちゃうので…。~/.gimp-2.6 や ~/.gimp-2.8 等を、一旦別の場所に移動してから作業を始めた。
Pythn 2.6.6 にPATHが通っている状態にしてから、GIMP 2.6.12 のインストーラ、gimp-2.6.12-i686-setup-2.exe を実行した。
GIMPのインストーラが Python 2.6 を見つけたので、インストールの途中で Python-Fu関係のファイルもインストール項目(「GIMP Python extension」) として表示された。もし、Python 2.6 が利用できない状態でインストーラを実行すると、該当項目はグレーアウトして選べない状態になるはず。さておき、チェックを入れてインストールを続行。
GIMP 2.6.12 インストール後、GIMPを実行。ユーザーデータ用のフォルダ、~/.gimp-2.6/ が作られた。GIMP を終了。
GIMP 2.6インストールフォルダ\lib\gimp\2.0\interpreters\pygimp.interp の内容を確認。利用したい Python (pythonw.exe) の場所が正しく指定されているか、また、改行コードが CRLF ではなくて LF になっているか確認する。
python=C:\Python\Python26\pythonw.exe /usr/bin/python=C:\Python\Python26\pythonw.exe :Python:E::py::python:
GIMP 2.6インストールフォルダ\lib\gimp\2.0\plug-ins\*.py を確認。もし、1行目に 「#!/usr/bin/env python」と書いてあったら、「#!/usr/bin/python」に書き換える。Windowsに /usr/bin/env というプログラムは無いので…。
GIMP起動用のbatファイルを作成。GIMPインストールフォルダ\bin\ あたりに入れておく。
_gimp-2.6.bat
@echo off set GIMPPATH=D:\Prog\GIMP-2.6.12\GIMP-2.0 set PYPATH=C:\Python\Python26 set GTKPATH=%PYPATH%\Lib\site-packages\gtk-2.0\runtime\bin set GIMPFUPATH=%GIMPPATH%\lib\gimp\2.0\python set PATH=%PYPATH%;%PYPATH%\Scripts;%GTKPATH%;%GIMPPATH%\bin;%PATH% @rem set PATH=%PYPATH%;%PYPATH%\Scripts;%GIMPPATH%\bin;%PATH% @rem set PYTHONPATH=%PYPATH%\Lib\site-packages set PYTHONPATH=%GIMPFUPATH% set PYTHON_ROOT=%PYPATH% echo. echo add path %PYPATH% echo add path %PYPATH%\Scripts echo add path %GTKPATH% echo add path %GIMPPATH%\bin echo. echo PYTHONPATH=%PYTHONPATH% echo PYTHON_ROOT=%PYTHON_ROOT% @rem cd /d %GIMPPATH% @rem cd /d %GIMPPATH%\bin cd /d %USERPROFILE% %GIMPPATH%\bin\gimp-2.6.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
このbatファイルを実行すると、Python 2.6.6 をPATHに追加してから、GIMP 2.6.12 を起動する。
余談。カレントディレクトリを %USERPROFILE% にしてから GIMP 2.6.12 を起動しないと、何故か Python-Fu が動いてくれなかった…。なんでだろ…。
さておき。GIMPが起動したら、フィルタ → Python-Fu → コンソール、を選択。コンソールウインドウが表示されたら、Python-Fu は利用できる。
◎ 問題点。 :
これで一応、Python-Fu が動作する GIMP 2.6 環境は得られたわけだけど。不具合に遭遇した。
通常インストール版 GIMP 2.6.12、GIMP-papinter- 2.6.11、どちらでも不具合が発生してるのだけど…。Pythonコンソールウインドウや、Python-Fu で書いたフィルタのダイアログの入力欄で、何故かキー入力ができなかった。Enterキー、Deleteキー、Backspaceキーは反応するし、Ctrl + V で貼付けはできるのだけど…。
メモ帳でも開いておいて、そこに入力値を打ち込んでからコピーして、Python-Fu関係のダイアログに貼り付ける、といった感じで使っていくしかなさそう。
でもまあ、今時 GIMP 2.6 を使うことはまず無いと思うので…。GIMP 2.10 か 2.8 を使えばいいわけで…。
ちょっと記憶が怪しいけれど、たしか GIMP 2.8 からは Python-Fu が使える状態で配布されていた気がする。だから、Python-Fu を使いたいなら、最初から GIMP 2.8、2.10 を利用したほうがいい。GIMP 2.6 で Python-Fu を使おうとしたから、こんな面倒臭い作業をすることになってるわけで…。
通常インストール版 GIMP 2.6.12、GIMP-papinter- 2.6.11、どちらでも不具合が発生してるのだけど…。Pythonコンソールウインドウや、Python-Fu で書いたフィルタのダイアログの入力欄で、何故かキー入力ができなかった。Enterキー、Deleteキー、Backspaceキーは反応するし、Ctrl + V で貼付けはできるのだけど…。
メモ帳でも開いておいて、そこに入力値を打ち込んでからコピーして、Python-Fu関係のダイアログに貼り付ける、といった感じで使っていくしかなさそう。
でもまあ、今時 GIMP 2.6 を使うことはまず無いと思うので…。GIMP 2.10 か 2.8 を使えばいいわけで…。
ちょっと記憶が怪しいけれど、たしか GIMP 2.8 からは Python-Fu が使える状態で配布されていた気がする。だから、Python-Fu を使いたいなら、最初から GIMP 2.8、2.10 を利用したほうがいい。GIMP 2.6 で Python-Fu を使おうとしたから、こんな面倒臭い作業をすることになってるわけで…。
[ ツッコむ ]
以上、1 日分です。