Python используется во многих частях приложения ArcGIS Pro. Integrated Development Environments (IDE) – это приложения, обеспечивающие удобную среду редактирования и отладки для специалистов, которые пишут коды. IDE делают процесс написания кода и поиска ошибок в нем проще и эффективнее. Python IDE используется для написания и отладки инструмента-скрипта, а также проверки набора инструментов Python и выполнения кода.
IDE
Microsoft Visual Studio IDE
Метод отладки | Добавление к процессам запуска |
---|---|
Поддерживаемые компоненты ArcGIS Pro |
|
Дополнительные ресурсы | 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, выполните сначала работы следующие действия:
- Откройте Microsoft Visual Studio.
- Щелкните в главном меню Отладка > Присоединение к процессу.
- В диалоговом окне Присоединение к процессу dialog щелкните кнопку Выбрать.
- В диалоговом окне Выбрать тип кода поставьте отметку Отладка этих типов кода, отметьте Python и нажмите OK.
Примечание:
Вам нужно выбрать Присоединение к: код Python. Не используйте тип кода по умолчанию Автоматически: код Managed (v4.6, v4.5, v4.0), код Python.
- Щелкните в списке доступных процесс 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 |
|
Дополнительные ресурсы |
Использование модуля 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 выполняется несколько раз по мере загрузки инструментов и взаимодействия с ними.