mieki256's diary



2020/01/01(水) [n年前の日記]

#2 [gimp][python] Python-FuでGIMPのバージョンを調べる

GIMP + Script-Fu で、GIMPのバージョンを調べる方法については、昨日実験したけれど。

_mieki256's diary - Script-FuでGIMPのバージョンを調べる

同じことを Python-Fu でやろうとした場合、どう書けばいいのか気になったので実験してみたり。

動作確認環境は以下。
GIMP 2.10.15 Python Console
Python 2.7.17 (default, Oct 23 2019, 05:51:06)  [GCC 9.2.0 32 bit]

>>> from gimpfu import *

>>> gimp.version
(2, 10, 15)

>>> (gimp.version[1] >= 8)
True

GIMP 2.8.22 Python Console
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]

>>> from gimpfu import *

>>> gimp.version
(2, 8, 22)

>>> (gimp.version[1] >= 8)
True

GIMP 2.6.12 Python Console
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]

>>> from gimpfu import *

>>> gimp.version
(2, 6, 12)

>>> (gimp.version[1] >= 8)
False

今頃気が付いたけど、Windows10 x64 1909 + GIMP 2.6.12 の Pythonコンソール上では、文字入力ができないな…。コピー&ペーストで、どうにか実行してみたけれど…。

考えてみたら、Python-Fu が標準で使えるようになったのは GIMP 2.8 以降だから、GIMP 2.6上で動作確認する必要はなかったのかもしれない。Python-Fuスクリプトに関しては、GIMP 2.6以前は未対応、という扱いにするほうが妥当な気もする。

小数点以下もアリにするのはどうか。 :

将来的に GIMP 3.0 が登場した際には、こういった判別方法では問題が起きるだろうけど。考えてみたら、バージョン番号を数値化する際に、小数点以下も持っている状態にすれば、判別が楽なのかもしれないと思えてきた。

GIMP 2.10.15 Python Console
Python 2.7.17 (default, Oct 23 2019, 05:51:06)  [GCC 9.2.0 32 bit]

>>> from gimpfu import *

>>> (gimp.version[0] + gimp.version[1] * 0.1)
3.0

>>> (gimp.version[0] * 1.0 + gimp.version[1] * 0.1)
3.0

アレ? なんで 3.0 になるんだ?

>>> gimp.version
(2, 10, 15)

あー。10 に 0.1 を掛けたら 1.0 になるから、2.0 + 1.0 で 3.0 になっちゃうのか…。ということで、この方法ではちょっと上手くいかない予感。

むしろ、バージョン番号の最初の数値の桁を大きくしたほうがいいのかな…。

>>> (gimp.version[0] * 1000 + gimp.version[1])
2010

>>> ((gimp.version[0] * 1000 + gimp.version[1]) >= 2008)
True

一応目的は果たせそうではあるけれど、これもこれでなんだかちょっと珍妙なことをしている印象もあるなと。

以上です。

過去ログ表示

Prev - 2020/01 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project