non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

Windowsで64ビットなPythonでPython-Fuが動くgimpをビルドした

おはようございます。4歳になった次男、お兄さんシャンプーすると宣言してましたが、いまだにあおむけになって、抱っこされてする赤ちゃん方式でのシャンプーをしてます。@kjunichiです。

準備

公式の通り、msys環境、mingw64環境をアップデートする。

gimpビルドメモ

python拡張なしの場合は、公式とおりで大丈夫だったと記憶している。

python拡張を有効にする--disable-pythonを外すとなかなかビルド出来ず苦労した。

を見つけて何とか出来た。

libpython27を用意する

dll,dll.aのそれぞれのファイルをコピーして、 libpython2.7をlibpython27に変更して、以下の2ファイルを用意する。

C:\tools\msys64\mingw64\bin\libpython27.dll
C:\tools\msys64\mingw64\lib\libpython27.dll.a
ACLOCAL_FLAGS=-I/mingw64/share/aclocal CPPFLAGS="-I/mingw64/include/python2.7" PYTHON=C:/tools/msys64/mingw64/bin/python2w.exe ./autogen.sh  --prefix=$PREFIX --disable-gtk-doc --with-gimpdir=GIMP/git-master

pygimp.intrepの修正

lib/gimp/2.0/interpreters/pygimp.intrepに書き込まれているPythonのパスの設定がおかしいので、修正する。

python=C:/tools/msys64/mingw64/bin/python2w.exe                                                                         
/usr/bin/python=C:/tools/msys64/mingw64/bin/python2w.exe                                                                
:Python:E::py::python: 

GIMPを起動する

 PYTHONPATH=/home/kjw_j/prefix/lib/gimp/2.0/plug-ins gimp-2.8.exe

これで、Script-Fuの下にPython-Fuメニューが表示された。

f:id:kjw_junichi:20170601074047p:plain

考察

pythongimp同様にビルドし、Pathの設定にGimpプラグインパスを追加すれば、いい感じに出来そう。

関連記事

ビルドつながり

我が家の炊飯器が壊れた

おはようございます。今週は、奥さんが早出だったので、久しぶりに、子供たちを保育園に登園させました。朝の登園で父親とは、あまりないので、奥さんが登園させるよりスムーズにできました。(もちろん奥さんが登園準備に協力してくれているのも要因ですが)@kjunichiです。

新婚生活とほぼ同時にかった炊飯器が寿命を迎えた

以下のリンクでPDFマニュアルを見つけて、緑と赤のランプの点滅は故障の知らせと分かった。 これは寿命と判断した。

6年ほど頑張って我が家の食事を支えてくれました。ありがとう!

1~5.5合(0.18~1.0L) 電子ジャー炊飯器 SR-LU101 商品概要 | ジャー炊飯器 | Panasonic

新しく購入した炊飯器

関連記事

11年前の記事

10年前の記事

8年前の記事

4年前の記事

Windowsでlablglを使う

おはようございます。次男のしばらく遊ばなかった折り紙を再利用して長男とスポーツカーを折ったら、次男が激怒してました。@kjunichiです。

前提

なりでutopが動く程度に環境が整備されていること。

Cygwinのターミナルを開いて作業

.bashrc

export PATH=$PATH:$HOME/.opam/system/lib/stublibs
export OCAMLLIB=C:/OCaml/lib

install

opam depext lablgl.1.05
opam install lablgl

REPLモードでlablglを使う

折角前回入れたutopで以降は作業する。このため、cygwinのターミナルから cmdを起動して、以降はこちらのコマンドプロンプトで作業を行う。

utopだとlablglutコマンドとは違い、タブの補間が効いたりと便利なことも多い。

cd $HOME && cmd /c start cmd
utop
#require "lablgl";;
#require "lablgl.glut";;

これで対話的にlablglが使える。

以下のようにウィンドウを表示できた。

Glut.init Sys.argv;;
Glut.createWindow "LablGL: aiueo";;
Gl.enable `lighting;;
GlLight.light 1 (`diffuse (0.7, 0.9, 0.7, 1.0));;
GlLight.light 1 (`position (2.0, 0.2, 0.0, 0.0));;
Gl.enable `light1;;
let display () = 
    GlClear.color (0.0, 0.0, 0.0);
    GlClear.clear [`color];
    Glut.solidTeapot 0.3;
    Gl.flush ();;
Glut.displayFunc display;;
Glut.mainLoop ();;

書いたコードを動かすには

ocaml -I "C:/tools/cygwin/home/kjw_j/.opam/system/lib/lablgl" lablgl.cma lablglut.cma fern.ml

exeをつくるには

ocamlfind ocamlopt -o fern -linkpkg -package lablgl,lablgl.glut fern.ml

ソース

表示結果

f:id:kjw_junichi:20170527072800p:plain

改めうごかすと動かない問題

この問題は、この記事の.bashrcの設定を行っていれば起きない。

  • dlllablgl.dllが開けないエラー

パスが通っていない

  • Fatalエラー
Fatal error: exception Typetexp.Error(_, _, _)

OCAMLLIBが設定されていないと、これが出る模様。

あとがき

実は、この記事の書いてる際にlablgtkを使おうとしたら、上手くいかず、最近はOCaml for Windowsを使うようになった。 こちらでも、lablgtkに加え、lablglも動いている。

関連記事

11年前の記事

10年前の記事

8年前の記事

4年前の記事