При использовании набора инструментов Python (.pyt) в ArcMap я обычно буду следовать шаблону, в котором сам файл .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)
Это работает очень хорошо, но я столкнулся с одной неприятной проблемой во время разработки. Щелкните правой кнопкой мыши -> Обновить .pyt в ArcMap только обновляет код файла .pyt. Он не обновляет импортированные модули, поэтому мне приходится закрывать и снова открывать ArcMap всякий раз, когда я что-то там меняю. К счастью, так как я тестирую код самостоятельно, мне не нужно делать это тонну, но это все еще большая проблема. Есть ли способ обойти это? Несколько связано - есть ли способ полностью обновить консоль Python (у меня есть собственный пакет сайта, который я также должен закрыть / снова открыть ArcMap для получения изменений)?
Я использую ArcMap 10.2.1.