Skip to main content

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

Чтобы отладить инструменты-скрипты в Microsoft Visual Studio, должна быть установлена рабочая нагрузка разработки на Python для Visual Studio.

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

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

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

  1. В ArcGIS Pro откройте инструмент для отладки на панели Геообработка.

  2. Запустите Microsoft Visual Studio и откройте скрипт для отладки.

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

  3. На главном меню Microsoft Visual Studio нажмите Отладка > Присоединение к процессу.

  4. В диалоговом окне Присоединение к процессу dialog щелкните кнопку Выбрать.

  5. В диалоговом окне Выбрать тип кода поставьте отметку Отладка этих типов кода, отметьте Python и нажмите OK.

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

  6. В списке доступных процессов выберите процесс ArcGISPro.exe и нажмите кнопку Присоединить.

  7. При необходимости расставьте точки останова.

  8. Запустите инструмент в ArcGIS Pro, чтобы начать отладку.

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

Чтобы узнать больше об отладке кода Python в Visual Studio, см. Отладка кода Python в Visual Studio на сайте Microsoft Learn.

Примечание:

Microsoft Visual Studio 2019 и более поздние версии используют отладчик Python, основанный на debugpy, который изначально поддерживается ArcGIS Pro без какой-либо дополнительной настройки.

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

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

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

  1. Откройте диалоговое окно свойств инструмента-скрипта и перейдите на вкладку Выполнение.

  2. Если скрипт выполнения встроен, щелкнете кнопку Экспортировать скрипт в файл.

  3. Продолжите работу с экспортированным файлом .py.

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

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

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

  1. Откройте диалоговое окно свойств инструмента-скрипта и перейдите на вкладку Проверка.

  2. Скопируйте код в файл .py (validate_code.py в данном примере).

  3. Замените код на вкладке Проверка следующим примером кода:

    В следующем примере, 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   
    
  4. Продолжайте отладку с помощью файла validate_code.py.

  5. После завершения отладки замените содержимое редактора кода на вкладке Проверка диалогового окна свойств инструмента содержимым файла .py (validate_code.py в примере кода).

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