Pythonモジュールを変更後、ANPファイルを実行しても変更内容が反映されない

更新しました Apr 8, 2021

使用製品

ソフトウェア

  • DIAdem
  • SystemLink
  • SystemLink Jupyter Notebook Add-On

問題

DIAdemでANPファイルのPythonコードを編集する際にMain.pyに同梱している任意のモジュールを変更し、上書き保存した後、ANPファイルを実行すると変更前の状態で任意のモジュールが実行されます。Main.pyの変更点は反映されている様子です。なぜですか?

解決策

Pythonで作成したモジュールをロードすると、メモリ上に保持され続ける為、モジュールの内容を変更し、変更内容も含めた状態で使用する場合、モジュールをリロードする必要があります。こちらの公式ドキュメント にも掲載されている通り、importlib.reload関数を使用します。

例えばmymodule2.pyをmain.pyに読み込ませている場合、下記のようにするとreloadできます。​
import mymodule2 as mymod
import importlib
importlib.reload(mymod)​
 
ReloadMyModule.png