Отладка инструментов-скриптов с помощью Microsoft Visual Studio

Для отладки инструментов-скриптов в Microsoft Visual Studio, необходимо установить рабочую нагрузку разработки PythonVisual Studio.

Дополнительную информацию см. в разделе Изменение рабочих нагрузок, компонентов и языковых пакетов Visual Studio на сайте Learn Microsoft.

Отладка кода Python в ArcGIS Pro

Чтобы приступить к отладке кода Python в ArcGIS Pro, выполните следующие действия:

  1. В ArcGIS Pro откройте инструмент для отладки на панели Геообработка.
  2. Запустите Microsoft Visual Studio и откройте скрипт, который надо отладить.

    Для инструментов-скриптов (.atbx) может потребоваться дополнительная настройка для отладки кода выполнения. Для отладки наборов инструментов Python также требуется дополнительная настройка (.pyt). Подробную информацию смотрите в разделах ниже.

  3. Вставьте функцию arcpy.SetupDebugger() в начало отлаживаемого скрипта после всех импортов.
  4. Щелкните в главном меню Microsoft Visual StudioОтладка > Присоединение к процессу.
  5. В диалоговом окне Присоединение к процессу dialog щелкните кнопку Выбрать.
  6. В диалоговом окне Выбрать тип кода поставьте отметку Отладка этих типов кода, отметьте Python и нажмите OK.

    Вам нужно выбрать Присоединение к: код Python. Не используйте тип кода по умолчанию Автоматически: код Managed (v4.6, v4.5, v4.0), код Python.

  7. В списке доступных процессов выберите процесс ArcGISPro.exe и нажмите кнопку Присоединить.
  8. При необходимости расставьте точки останова.
  9. Запустите инструмент ArcGIS Pro, чтобы начать отладку.

После завершения отладки при необходимости удалите все вызовы arcpy.SetupDebugger() из кода.

После отключения интегрированной среды разработки (IDE) от ArcGIS Pro, исключения в коде Python будут отображаться некорректно. Чтобы избежать этого, необходимо перезапустить ArcGIS Pro.

Дополнительные сведения об отладке кода Python в Visual Studio смотрите в разделе Отладка кода Python в Visual Studio на сайте Learn Microsoft.

Примечание:

Microsoft Visual Studio 2017 можно использовать для отладки ArcGIS Pro 2.1 и выше. Ранние версии любого из этих приложений не поддерживаются. Microsoft Visual Studio 2022 и более поздние версии используют другой отладчик Python, а отладочные скрипты ArcGIS ProPython требуют включения этой функции arcpy.SetupDebugger().

Отладка кода выполнения инструмента-скрипта

Если код выполнения инструмента-скрипта встроен, необходимо экспортировать скрипт из панели инструментов, прежде чем можно будет его отладить.

Чтобы отладить код выполнения инструмента-скрипта, выполните следующие действия:

  1. Откройте диалоговое окно свойств инструмента-скрипта и перейдите на вкладку Выполнение.
  2. Если скрипт выполнения встроен, щелкнете кнопку Экспортировать скрипт в файл.
  3. Добавьте вызов arcpy.SetupDebugger() после импорта.
  4. Продолжите работу с экспортированным файлом .py.

Код проверки отладки инструмента-скрипта

Если код Python проверки инструмента-скрипта встроен в инструмент, необходимо сначала скопировать код во внешний файл Python (.py), чтобы выполнить его отладку. Затем вы можете открыть файл Python в IDE и установить точки останова, присоединить IDE к ArcGIS Pro и запустить инструмент-скрипт. По окончании изменения кода скопируйте содержимое файла Python обратно в инструмент проверки.

Для отладки кода проверки инструмента-скрипта выполните следующие действия:

  1. Откройте диалоговое окно свойств инструмента-скрипта и перейдите на вкладку Проверка.
  2. Скопируйте код в файл .py (validate_code.py в данном примере).
  3. В файле .py добавьте вызов arcpy.SetupDebugger() после импорта.
  4. Замените код на вкладке Проверка следующим примером кода:
  5. В следующем примере, validate_code.py (содержание не показано) содержит класс ToolValidator и сохраняется в той же директории, что и набор инструментов. Поместите следующий фрагмент кода в редактор кода диалогового окна свойств инструмента на вкладке Проверка, чтобы передать отладку в validate_code.py.

    import os
    import sys
    
    sys.path.append(os.getcwd())  # Ensure directory containing module is in Python path
    import validation_code
    
    # The following code will reload the val.py module if it's modified
    if 'validation_code' in sys.modules:
        import importlib
        importlib.reload(validation_code)
    
    # ToolValidator should exist at the global scope
    ToolValidator = validation_code.ToolValidator
  6. Продолжайте отладку с помощью файла validate_code.py.
  7. После завершения отладки замените содержимое редактора кода на вкладке Проверка диалогового окна свойств инструмента содержимым файла .py (validate_code.py в примере кода) и удалите arcpy.SetupDebugger().

При работе пользователя с инструментом код проверки инструмента-скрипта выполняется неоднократно.

Наборы инструментов отладки Python

Вы не можете отлаживать набор инструментов Python (.pyt) напрямую, вместо этого его необходимо выполнить отладку с помощью файла .py.

Для отладки набора инструментов Python выполните следующие действия:

  1. Создайте внешний файл .py (в примере execute_code.py) в той же директории, где находится набор инструментов Python.
  2. Скопируйте код функции execute панели инструментов Python в функцию (func) в новом файле Python и скопируйте все остальные необходимые функции.
  3. Ниже приведен пример содержимого execute_code.py, которое сохранено в том же каталоге, что и файл .pyt.

    import arcpy
    
    def func(parameters):
        arcpy.AddMessage("This is where your code goes.")
        return
  4. Замените код в методе execute панели инструментов Python следующим:
  5. Ниже приведен пример измененной функции execute в наборе инструментов Python.

    
    arcpy.SetupDebugger()
    import execute_code
    execute_code.func(parameters)
  6. Продолжайте отладку с помощью файла execute_code.py.
  7. Закончив отладку, скопируйте содержимое func из файла Python (execute_code.py в примере) обратно в функцию инструмента execute.

Связанные разделы