Отладка кода Python

Python используется во многих частях приложения ArcGIS Pro. Integrated Development Environments (IDE) – это приложения, обеспечивающие удобную среду редактирования и отладки для специалистов, которые пишут коды. IDE делают процесс написания кода и поиска ошибок в нем проще и эффективнее. Python IDE используется для написания и отладки инструмента-скрипта, а также проверки набора инструментов Python и выполнения кода.

IDE

Microsoft Visual Studio IDE

Метод отладкиДобавление к процессам запуска

Поддерживаемые компоненты ArcGIS Pro

  • Выполнение инструмента-скрипта
  • Проверка инструмента-скрипта
  • Наборы инструментов Python

Дополнительные ресурсы

https://docs.microsoft.com/en-us/visualstudio/python/debugging

Необходимо установить следующий Visual Studio Workload: Python development. См. https://docs.microsoft.com/en-us/visualstudio/install/modify-visual-studio.

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

  1. Откройте Microsoft Visual Studio.
  2. Щелкните в главном меню Отладка > Присоединение к процессу.
  3. В диалоговом окне Присоединение к процессу dialog щелкните кнопку Выбрать.
  4. В диалоговом окне Выбрать тип кода поставьте отметку Отладка этих типов кода, отметьте Python и нажмите OK.
    Примечание:

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

  5. Щелкните в списке доступных процесс ArcGISPro.exe и нажмите на кнопку Присоединить.

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

Примечание:

Microsoft Visual Studio 2017 можно использовать для отладки ArcGIS Pro 2.1. Ранние версии любого из этих приложений работать не будут.

Версия PyCharm Professional

Метод отладкиPython Debug Server

Поддерживаемые компоненты ArcGIS Pro

  • Выполнение инструмента-скрипта
  • Проверка инструмента-скрипта

Дополнительные ресурсы

https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html

модуль pdb

Модуль pdb – часть стандартной библиотеки Python. Он не является полностью готовым IDE, но может использоваться для интерактивной отладки исходного кода.

Метод отладкиИнтерактивный (на жестко закодированной точке разрыва)

Поддерживаемые компоненты ArcGIS Pro

  • Выполнение инструмента-скрипта (только в режиме автономного скрипта Python)

Дополнительные ресурсы

https://docs.python.org/3/library/pdb.html

Использование модуля pdb помогает при отладке кода инструмента-скрипта, запускаемого как автономный скрипт Python. Просто добавьте точку разрыва (используя import pdb;pdb.set_trace()) в код инструмента-скрипта, затем запустите скрипт Python, который вызывает запуск инструмента. При обнаружении точки разрыва Python перейдет в интерактивный режим. Не забудьте удалить код точки разрыва после окончания отладки.

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

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

В следующем примере, val.py содержит класс ToolValidator и сохраняется в той же директории, что и файл .tbx.

import sys
import val
# the following code will reload the val.py module if it's modified
if 'val' in sys.modules:
    import importlib
    importlib.reload(val)
# ToolValidator should exist at the global scope
ToolValidator = val.ToolValidator

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

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

IDE может отлаживать только файлы Python (.py). Для кода в наборе инструментов Python (файл .pyt): скопировать код во внешний файл Python и заменить код в наборе инструментов Python, как на примере ниже. Теперь вы можете открыть файл Python в IDE установить точку разрыва, добавить IDE к ArcGIS Pro и использовать набор инструментов Python. По окончании модификации кода скопируйте содержимое файла Python обратно в набор инструментов Python.

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

from pyt_code import *

Код в наборе инструментов Python выполняется несколько раз по мере загрузки инструментов и взаимодействия с ними.