Запуск скрипта в процессе

Если ваш инструмент-скрипт выполняет сценарий Python, вы должны включить опцию Запустить скрипт Python в процессе (Run Python script in process) для того, чтобы запустить этот скрипт в процессе, как показано ниже. Данная опция применяется только к скриптам Python.

Панель мастера Добавить скрипт 2 (Add Script)
ПримечаниеПримечание:

В процессе могут запускаться только либо скрипты, импортирующие ArcPy, как показано ниже, либо создающие объект геообработки с помощью arcgisscripting.create().

import arcpy
ПримечаниеПримечание:

Скрипты, использующие dispatch, как показано ниже, не могут запускаться в процессе, даже если включена опция Запустить скрипт Python в процессе (Run Python script in process).

import win32com.client
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")

Опция Запустить скрипт Python в процессе (Run Python script in process) стала доступна в ArcGIS 9.3. До версии 9.3 скрипты Python запускались вне процесса. Запуск вне процесса требует от ArcGIS запуска еще одного, другого процесса (помните об этом, запуская еще одну программу), что требует времени. При запуске вне процесса возникают также вопросы обмена информацией между этими двумя процессами. Начиная с версии 9.3, Python интегрирован в ArcGIS, и скрипты могут запускаться в процессе, экономя время на запуск и обмен информацией.

Запуск в процессе требует, чтобы все загруженные с Python модули были к этому приспособлены, обладая необходимой логикой. Все стандартные библиотеки Python, такие как os, string и time, имеют необходимую логику. Однако, нестандартные модули, приобретенные у третьих лиц, могут не иметь необходимой логики для запуска в процессе. Если вы испытываете необъяснимые проблемы при работе вашего скрипта, попробуйте отключить опцию «в процессе» и перезапустить ваш скрипт. Если при запуске вне процесса проблема исчезнет, то скорее всего проблема – в одном из импортированных вами модулей. В этом случае оставьте эту опцию выключенной.

5/10/2014