2018/08/11(土) [n年前の日記]
#1 [gimp] GIMP 2.10.4 Portable の pygimp.interp がおかしい
Windows10 x64 上に、GIMP 2.10.4 Portable をインストールしたけれど、Python-Fu を動かすための設定ファイル、pygimp.interp の内容が、どうもおかしいことに気づいたり。
◎ 症状。 :
例えば…。自分の場合、GIMP 2.10.4 Portable を C:\Prog\GIMP-2.10.4-Portable\ に置いてあるので…。
GIMP 2.10.4 Portable を、動作状況を表示するメッセージ付きで起動してみる。
ログメッセージの中に、以下が表示されてしまう。pygimp.interp 内の記述が、何か間違っているらしい。
更に、GIMP が起動すると、pygimp.interp が、以下のように勝手に書き戻されてしまう。
App\gimp\Python\ フォルダは、GIMP 2.8 Portable の頃はあったけど、GIMP 2.10 Portable では無くなっている。一体誰が、存在しないパスに書き戻してしまっているのか…。
C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\内にある pygimp.interp を、以下のように書き換えてみた。
python=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe python2=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe /usr/bin/python=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe :Python:E::py::\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe:
GIMP 2.10.4 Portable を、動作状況を表示するメッセージ付きで起動してみる。
GIMPPortable.exe --verbose --console-messages
ログメッセージの中に、以下が表示されてしまう。pygimp.interp 内の記述が、何か間違っているらしい。
INIT: gimp_initialize INIT: gimp_real_initialize Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\default.interp' Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp' GIMP-警告: インタープリターファイル 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp' 内で参照しているインタープリター '(NULL)' は無効です。 GIMP-警告: インタープリターファイル 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp' 内で参照しているインタープリター '(NULL)' は無効です。 Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\environ\default.env' Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\environ\pygimp.env' INIT: gui_initialize_after_callback INIT: gimp_restore Parsing 'C:\Prog\GIMP-2.10.4-Portable\Data\.gimp\parasiterc'
更に、GIMP が起動すると、pygimp.interp が、以下のように勝手に書き戻されてしまう。
python=C:\Prog\GIMP-2.10.4-Portable\App\gimp\Python\pythonw.exe python2=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe /usr/bin/python=C:\Prog\GIMP-2.10.4-Portable\App\gimp\Python\pythonw.exe :Python:E::py::python:
App\gimp\Python\ フォルダは、GIMP 2.8 Portable の頃はあったけど、GIMP 2.10 Portable では無くなっている。一体誰が、存在しないパスに書き戻してしまっているのか…。
◎ GIMP Portable 特有の不具合っぽい。 :
あちこちのファイルを眺めているうちに、なんとなく分かってきた。以下が犯人ではあるまいか。
GIMPPortable.ini 内の、以下の指定で、pygimp.interp を書き換えているように見える。
おそらく、GIMP Portable の起動時に、指定内容に基づいて、毎回 pygimp.interp を書き換えているのではないか…。しかし、ここに書かれているパスが、そもそも間違っていて、GIMP 2.8 時代のパスになっている。
試しに、GIMPPortable.ini を、GIMP 2.10向けに修正してみたところ、次回起動時、pygimp.interp も修正後の内容で書き換えられた。やはり、この指定が、pygimp.interp を妙な内容に書き換えてしまう犯人だった模様。
しかし、起動ログを見ると、相変わらず警告が出ている…。
pygimp.interp を眺めていたら、改行コードについて、CRLF と LF が混在している点がが気になった。もしかして、GIMP は *NIX文化圏のアプリだから、LFの改行コードしか受け付けない可能性はないか…。
GIMPPortable.ini を書き換えて、pygimp.interp の書き換え設定部分をコメントアウトしてみた。.iniファイルは、行頭に「;」をつけるとコメントアウトできるらしい。これで、pygimp.interp を書き換えない状態になるはず。
かつ、pygimp.interp を、LF のみにして保存してみた。
この状態で GIMP を起動すると、起動時のログの中で、警告が出てこなくなった。
C:\Prog\GIMP-2.10.4-Portable\App\AppInfo\Launcher\GIMPPortable.ini
GIMPPortable.ini 内の、以下の指定で、pygimp.interp を書き換えているように見える。
[FileWrite15] Type=ConfigWrite File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp Entry=python= Value=%PAL:AppDir%\gimp\bin\pythonw.exe [FileWrite16] Type=ConfigWrite File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp Entry=/usr/bin/python= Value=%PAL:AppDir%\gimp\bin\pythonw.exe [FileWrite17] Type=ConfigWrite File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp Entry=:Python:E::py: Value=:pythonw.exe:
おそらく、GIMP Portable の起動時に、指定内容に基づいて、毎回 pygimp.interp を書き換えているのではないか…。しかし、ここに書かれているパスが、そもそも間違っていて、GIMP 2.8 時代のパスになっている。
試しに、GIMPPortable.ini を、GIMP 2.10向けに修正してみたところ、次回起動時、pygimp.interp も修正後の内容で書き換えられた。やはり、この指定が、pygimp.interp を妙な内容に書き換えてしまう犯人だった模様。
しかし、起動ログを見ると、相変わらず警告が出ている…。
pygimp.interp を眺めていたら、改行コードについて、CRLF と LF が混在している点がが気になった。もしかして、GIMP は *NIX文化圏のアプリだから、LFの改行コードしか受け付けない可能性はないか…。
GIMPPortable.ini を書き換えて、pygimp.interp の書き換え設定部分をコメントアウトしてみた。.iniファイルは、行頭に「;」をつけるとコメントアウトできるらしい。これで、pygimp.interp を書き換えない状態になるはず。
; [FileWrite15] ; Type=ConfigWrite ; File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp ; Entry=python= ; Value=%PAL:AppDir%\gimp\bin\pythonw.exe ; ; [FileWrite16] ; Type=ConfigWrite ; File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp ; Entry=/usr/bin/python= ; Value=%PAL:AppDir%\gimp\bin\pythonw.exe ; ; [FileWrite17] ; Type=ConfigWrite ; File=%PAL:AppDir%\gimp\lib\gimp\2.0\interpreters\pygimp.interp ; Entry=:Python:E::py: ; Value=:pythonw.exe:
かつ、pygimp.interp を、LF のみにして保存してみた。
この状態で GIMP を起動すると、起動時のログの中で、警告が出てこなくなった。
INIT: gimp_initialize INIT: gimp_real_initialize Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\default.interp' Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp' Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\environ\default.env' Parsing 'C:\Prog\GIMP-2.10.4-Portable\App\gimp\lib\gimp\2.0\environ\pygimp.env' INIT: gui_initialize_after_callback INIT: gimp_restore Parsing 'C:\Prog\GIMP-2.10.4-Portable\Data\.gimp\parasiterc'
◎ 結論。 :
つまり、GIMP 2.10.4 Portable には、以下のバグがある。
よって、解決策としては…。
自分の環境では、pygimp.interp を以下のようにした。
ちなみに、一番最後の行で pythonw.exe を指定することで、Python-Fuスクリプトを実行した際にDOS窓が開かない状態になる模様。
本来なら、最後の行に、
今回、「python=〜」を、GIMP が読み取れない、もしくは読み取っても、指定されたパスに目的のファイルが存在しないので、.py が呼ばれると、とにかく 「python」を呼び出した ―― python.exe を呼んでしまって、DOS窓が開いていたのだろう…。
- GIMPPortable.ini 内の指定により、GIMP 2.8用の間違った pythonw.exe のパスで pygimp.interp が書き換えられてしまう。
- 改行コードを LF にしないといけない設定ファイルに対して、CRLF を使って書き換えてしまって、GIMP が警告を出す。
よって、解決策としては…。
- (GIMP 2.10.4 Portableインストールフォルダ)\App\AppInfo\Launcher\GIMPPortable.ini の、pygimp.interp 書き換え指定部分をコメントアウト(行頭に「;」を挿入)して、pygimp.interp を書き換えないようにする。
- かつ、(GIMP 2.10.4 Portableインストールフォルダ)\App\gimp\lib\gimp\2.0\interpreters\pygimp.interp の、pythonw.exe までのパスを正しいものにする。
- かつ、pygimp.interp は、改行コードを LF で統一して保存する。
自分の環境では、pygimp.interp を以下のようにした。
python=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe python2=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe /usr/bin/python=C:\Prog\GIMP-2.10.4-Portable\App\gimp\bin\pythonw.exe :Python:E::py::pythonw.exe:
ちなみに、一番最後の行で pythonw.exe を指定することで、Python-Fuスクリプトを実行した際にDOS窓が開かない状態になる模様。
本来なら、最後の行に、
:Python:E::py::python:と書いてあることで、上のほうで指定されてる「python=〜」が使われて、結局は pythonw.exe が呼び出され、DOS窓が開かない状態になるのではないかと思うのだけど…。
今回、「python=〜」を、GIMP が読み取れない、もしくは読み取っても、指定されたパスに目的のファイルが存在しないので、.py が呼ばれると、とにかく 「python」を呼び出した ―― python.exe を呼んでしまって、DOS窓が開いていたのだろう…。
◎ 問題。 :
これは GIMP Portable に限った話ではなく、PortableApps で公開されてるアプリ全般に言えるのかもしれないけれど。もしかして、設定ファイルを書き換える処理部分に、改行コードを LF にするか、CRLF にするか、指定・反映する機能も必要だったりするのではないかしらん。まあ、*NIX文化圏のアプリに対してのみ、必要になる機能だろうけど。
GIMP側で CR を読み飛ばす処理を入れる手もあるだろうけど。GIMP開発側 = *NIX文化圏からは、「LFで統一しろや」「なんでCRLFなんて使うんだ」と言われそうな予感も。
GIMP側で CR を読み飛ばす処理を入れる手もあるだろうけど。GIMP開発側 = *NIX文化圏からは、「LFで統一しろや」「なんでCRLFなんて使うんだ」と言われそうな予感も。
[ ツッコむ ]
#2 [pc] USBメモリ I-O DATA KUM-8G/Kを購入
先日、DELL Latitude 10 がまともに動かなくなって焦ったので、OSをバックアップしておかないといかんなと。バックアップには8GB程度のUSBメモリが必要らしいので、近所のケーズデンキで、ワゴンに山積みになっていた、I-O DATA KUM-8G/K を購入。USB2.0接続。8GB。税抜きで660円ぐらいだった気がする。
_KUMシリーズ | USBメモリー | IODATA アイ・オー・データ機器
一応、CrystalDiskMark で速度測定。
コレは…かなり遅いのではなかろうか…。まあ、最安で売られてた製品だし、USB3.0対応品でもないし…。
Check Flash で、エラーが無いか一応確認。
_故障や容量偽装のチェック| check flashの使い方 | SDカード博士のSDカードナビ
_SDカードやUSBメモリを診断・検査・修復できるツール Check Flash - ぼくんちのTV 別館
「一時ファイルを使う」「読み書きテスト」「最小パターン」「フルパス1回」でチェックしてみたけれど、エラーは出なかった。一応、8GB分、ちゃんと使える状態らしい。
スライド式のUSBメモリだけど、USB端子に差そうとして少し力を入れると、出したはずの金属端子部分がすぐに引っ込んでしまう。使うにはコツが必要そう。いや、ぶっちゃけ、使いづらい。でもまあ、安いから仕方ない…。
_KUMシリーズ | USBメモリー | IODATA アイ・オー・データ機器
一応、CrystalDiskMark で速度測定。
----------------------------------------------------------------------- CrystalDiskMark 5.1.2 x64 (C) 2007-2016 hiyohiyo Crystal Dew World : http://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 22.310 MB/s Sequential Write (Q= 32,T= 1) : 6.893 MB/s Random Read 4KiB (Q= 32,T= 1) : 4.456 MB/s [ 1087.9 IOPS] Random Write 4KiB (Q= 32,T= 1) : 0.400 MB/s [ 97.7 IOPS] Sequential Read (T= 1) : 22.229 MB/s Sequential Write (T= 1) : 5.872 MB/s Random Read 4KiB (Q= 1,T= 1) : 4.215 MB/s [ 1029.1 IOPS] Random Write 4KiB (Q= 1,T= 1) : 0.382 MB/s [ 93.3 IOPS] Test : 100 MiB [F: 0.0% (0.0/7384.0 MiB)] (x3) [Interval=5 sec] Date : 2018/08/11 20:32:53 OS : Windows 10 Professional [10.0 Build 17134] (x64) I-O DATA KUM-8G/K (USB2.0/8GB)
コレは…かなり遅いのではなかろうか…。まあ、最安で売られてた製品だし、USB3.0対応品でもないし…。
Check Flash で、エラーが無いか一応確認。
_故障や容量偽装のチェック| check flashの使い方 | SDカード博士のSDカードナビ
_SDカードやUSBメモリを診断・検査・修復できるツール Check Flash - ぼくんちのTV 別館
「一時ファイルを使う」「読み書きテスト」「最小パターン」「フルパス1回」でチェックしてみたけれど、エラーは出なかった。一応、8GB分、ちゃんと使える状態らしい。
スライド式のUSBメモリだけど、USB端子に差そうとして少し力を入れると、出したはずの金属端子部分がすぐに引っ込んでしまう。使うにはコツが必要そう。いや、ぶっちゃけ、使いづらい。でもまあ、安いから仕方ない…。
◎ 余談。DELL OS Recovery Toolのその後。 :
DELL OS Recovery Tool を使えば、DELL Latitude 10 のOS再インストール用ISOを入手できるのでは、と思っていたけれど。サービスタグやエクスプレスサービスコードを入力しても、「お前が持ってる機種用のイメージは用意されてねえから」と言われてしまった…。
このDELL製品、何かの拍子にインストール済みの Windows8 が壊れたら、手詰まりだな…。一般的なメーカ製ノートPCのように、HDD内の別パーティションから書き戻して、工場出荷時に戻せれば良かったのだけど…。
このDELL製品、何かの拍子にインストール済みの Windows8 が壊れたら、手詰まりだな…。一般的なメーカ製ノートPCのように、HDD内の別パーティションから書き戻して、工場出荷時に戻せれば良かったのだけど…。
[ ツッコむ ]
#3 [pc] Thunderbirdをバージョン 60 にアップデートしたけれど
メーラ、Thunderbird のバージョン60が公開されたらしいので、アップデートしたのだけれど。
_Mozilla、「Thunderbird 60」を正式公開 〜「Firefox Quantum」の“Photon”デザインを導入 - 窓の杜
導入していた拡張が使えなくなってしまった…。Thunderbird 60 は Firefox Quantum のアレコレを導入、と書いてあるけれど、そのせいだろうか…。もうちょっと待てばよかったか…。
_Mozilla、「Thunderbird 60」を正式公開 〜「Firefox Quantum」の“Photon”デザインを導入 - 窓の杜
導入していた拡張が使えなくなってしまった…。Thunderbird 60 は Firefox Quantum のアレコレを導入、と書いてあるけれど、そのせいだろうか…。もうちょっと待てばよかったか…。
[ ツッコむ ]
#4 [anime] シンカリオン、エヴァコラボ回を視聴
ええもん見せてもろた…。これは本気のコラボや…。
[ ツッコむ ]
以上、1 日分です。