在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。