Обычно отладчики / IDE Python предполагают, что скрипт Python выполняется в том же процессе, что и сам, поэтому отладка скрипта, запущенного в ArcMap.exe, не вызывает затруднений - вам нужно получить достаточно среды сценариев GP, загруженной в скрипт Python, как вы можете отладить с.
Метод, который очень хорошо работал для меня в течение последних нескольких лет, - это написать простой скрипт, который просто вызывает инструмент, и использовать его в качестве основного сценария в Python IDE (Wing или Pythonwin), а мои точки останова установить в .py инструмента. файл также открыть в том же сеансе IDE.
Так что в основном я делаю это:
- Получить набор входных данных, которые не работают в моем скрипте
- Откройте простой .py файл в той же папке, что и .tbx, который вызывает инструмент
- Откройте скрипт вызывающего абонента и файл .py инструмента скрипта в IDE.
- Установить точки останова в файле скрипта
- Запустите скрипт вызова
И мой скрипт вызова обычно довольно прост:
import os
import arcpy
arcpy.ImportToolbox(os.path.join(os.path.dirname(__file__), 'my.tbx'))
arcpy.MyToolThatIsFailing_myalias("inputs", "that", "don't" "work")
Я пробовал winpdb для отладки скриптов, работающих в ArcMap, но мне никогда не везло. Если вы хотите попробовать это, и у вас это получается хорошо, поделитесь своими выводами.