ImageJ の GUI plugin を作っていて,ボタンを押したときに一回目は動くのだけれど,なぜか2回目以降は NameError
で import した module が認識されない.
実験した限りだと,下のスクリプトで何回か画像を開いて閉じてしていると,5回目ぐらいから NameError になる. メモリ使用量が50%超えたぐらいで多分GCが起こっていて,import したmodule が消えるみたいだ.
gist762821786256875758da603517959298
結局,plugin
以下に置いていたものを jars/Lib
に移し,plugin
以下には jars/Lib
から module として import して実行する,以下のスクリプトを置いた.
from OverlayManagerPlus import OverlayManagerPlus if __name__ == '__main__': OverlayManagerPlus.OverlayManagerPlus()
こうすると,jars/Lib
のものはコンパイルされて script$py.class
となり,こうなると問題は起きないようだった.
よくわからん.