Для отладки инструментов-скриптов в Microsoft Visual Studio, необходимо установить рабочую нагрузку разработки PythonVisual Studio.
Дополнительную информацию см. в разделе Изменение рабочих нагрузок, компонентов и языковых пакетов Visual Studio на сайте Learn Microsoft.
Отладка кода Python в ArcGIS Pro
Чтобы приступить к отладке кода Python в ArcGIS Pro, выполните следующие действия:
- В ArcGIS Pro откройте инструмент для отладки на панели Геообработка.
- Запустите Microsoft Visual Studio и откройте скрипт, который надо отладить.
Для инструментов-скриптов (.atbx) может потребоваться дополнительная настройка для отладки кода выполнения. Для отладки наборов инструментов Python также требуется дополнительная настройка (.pyt). Подробную информацию смотрите в разделах ниже.
- Вставьте функцию arcpy.SetupDebugger() в начало отлаживаемого скрипта после всех импортов.
- Щелкните в главном меню Microsoft Visual StudioОтладка > Присоединение к процессу.
- В диалоговом окне Присоединение к процессу dialog щелкните кнопку Выбрать.
- В диалоговом окне Выбрать тип кода поставьте отметку Отладка этих типов кода, отметьте Python и нажмите OK.
Вам нужно выбрать Присоединение к: код Python. Не используйте тип кода по умолчанию Автоматически: код Managed (v4.6, v4.5, v4.0), код Python.
- В списке доступных процессов выберите процесс ArcGISPro.exe и нажмите кнопку Присоединить.
- При необходимости расставьте точки останова.
- Запустите инструмент 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().
Отладка кода выполнения инструмента-скрипта
Если код выполнения инструмента-скрипта встроен, необходимо экспортировать скрипт из панели инструментов, прежде чем можно будет его отладить.
Чтобы отладить код выполнения инструмента-скрипта, выполните следующие действия:
- Откройте диалоговое окно свойств инструмента-скрипта и перейдите на вкладку Выполнение.
- Если скрипт выполнения встроен, щелкнете кнопку Экспортировать скрипт в файл.
- Добавьте вызов arcpy.SetupDebugger() после импорта.
- Продолжите работу с экспортированным файлом .py.
Код проверки отладки инструмента-скрипта
Если код Python проверки инструмента-скрипта встроен в инструмент, необходимо сначала скопировать код во внешний файл Python (.py), чтобы выполнить его отладку. Затем вы можете открыть файл Python в IDE и установить точки останова, присоединить IDE к ArcGIS Pro и запустить инструмент-скрипт. По окончании изменения кода скопируйте содержимое файла Python обратно в инструмент проверки.
Для отладки кода проверки инструмента-скрипта выполните следующие действия:
- Откройте диалоговое окно свойств инструмента-скрипта и перейдите на вкладку Проверка.
- Скопируйте код в файл .py (validate_code.py в данном примере).
- В файле .py добавьте вызов arcpy.SetupDebugger() после импорта.
- Замените код на вкладке Проверка следующим примером кода:
- Продолжайте отладку с помощью файла validate_code.py.
- После завершения отладки замените содержимое редактора кода на вкладке Проверка диалогового окна свойств инструмента содержимым файла .py (validate_code.py в примере кода) и удалите arcpy.SetupDebugger().
В следующем примере, 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
При работе пользователя с инструментом код проверки инструмента-скрипта выполняется неоднократно.
Наборы инструментов отладки Python
Вы не можете отлаживать набор инструментов Python (.pyt) напрямую, вместо этого его необходимо выполнить отладку с помощью файла .py.
Для отладки набора инструментов Python выполните следующие действия:
- Создайте внешний файл .py (в примере execute_code.py) в той же директории, где находится набор инструментов Python.
- Скопируйте код функции execute панели инструментов Python в функцию (func) в новом файле Python и скопируйте все остальные необходимые функции.
- Замените код в методе execute панели инструментов Python следующим:
- Продолжайте отладку с помощью файла execute_code.py.
- Закончив отладку, скопируйте содержимое func из файла Python (execute_code.py в примере) обратно в функцию инструмента execute.
Ниже приведен пример содержимого execute_code.py, которое сохранено в том же каталоге, что и файл .pyt.
import arcpy
def func(parameters):
arcpy.AddMessage("This is where your code goes.")
return
Ниже приведен пример измененной функции execute в наборе инструментов Python.
arcpy.SetupDebugger()
import execute_code
execute_code.func(parameters)