ArcMapでPythonツールボックス(.pyt)を使用する場合、通常、.pytファイル自体が単なる入力引数を収集してツール自体を定義するラッパーであるパターンに従います。サポートコードは、個別のユニットテスト可能なモジュールに保持されます。
例:
import supporting_module
class MyTool(object):
...
def execute(self, parameters, messages):
"""The source code of the tool."""
some_input = parameters[0].valueAsText
some_output = parameters[1].valueAsText
supporting_module.do_something(some_input, some_output)
arcpy.SetParameter(2, some_output)
これは非常にうまく機能しますが、開発中にイライラする問題に遭遇しました。ArcMapの.pytを右クリック->更新すると、.pytファイルのコードのみが更新されます。インポートされたモジュールは更新されないため、そこで何かを変更するたびにArcMapを閉じて、再度開く必要があります。幸いなことに、私は独立してコードをテストしているので、これを大量に行う必要はありませんが、それでも大きな手間がかかります。これを回避する方法はありますか?多少関連があります-Pythonコンソールを完全に更新する方法はありますか(カスタムサイトパッケージがあるので、ArcMapを閉じたり開いたりして変更を取得する必要があります)?
ArcMap 10.2.1を使用しています。