Ausführen von Skripten im Prozess
Falls in Ihrem Skriptwerkzeug ein Python-Skript ausgeführt wird, sollten Sie wie unten gezeigt das Kontrollkästchen Python-Skript wird "in process" ausgeführt aktivieren, um das Skript im Prozess auszuführen. Diese Option gilt nur für Python-Skripte.
Nur Skripte, die wie unten dargestellt ArcPy importieren – oder das Geoprozessor-Objekt mit arcgisscripting.create() erstellen –, können im Prozess ausgeführt werden.
import arcpy
Skripte, die wie unten dargestellt "dispatch" verwenden, werden nicht im Prozess ausgeführt. Dies gilt auch, wenn die Option Python-Skript wird "in process" ausgeführt aktiviert ist.
import win32com.client gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
Die Option Python-Skript wird "in process" ausgeführt ist ab Version ArcGIS 9.3 verfügbar. In Versionen vor Version 9.3 wurden Python-Skripte außerhalb des Prozesses ausgeführt. Bei der Ausführung außerhalb des Prozesses muss ArcGIS einen anderen Prozess starten, was Zeit in Anspruch nimmt. Bei der Ausführung außerhalb des Prozesses kann es auch zu Leistungsproblemen durch die Weiterleitung von Meldungen zwischen den Prozessen kommen. Ab Version 9.3 ist Python in ArcGIS eingebunden, sodass Skripte im Prozess ausgeführt werden können. Zeitverluste durch das Starten des Prozesses und Performance-Probleme durch die Meldungsweiterleitung werden dadurch vermieden.
Bei der Ausführung im Prozess müssen alle Module, die mit der Import-Direktive von Python geladen wurden, über die notwendige Logik verfügen, um im Prozess ausgeführt werden zu können. Alle Python-Standardbibliotheken wie os, string und time verfügen über die erforderliche Logik. Anderen Modulen von Drittanbietern fehlt jedoch möglicherweise die für die Ausführung im Prozess erforderliche Logik. Falls bei der Skriptausführung Probleme auftreten, die Sie sich nicht erklären können, deaktivieren Sie die "in process"-Option und führen das Skript noch einmal aus. Falls der Fehler bei der Ausführung außerhalb des Prozesses nicht mehr auftritt, wird das Problem wahrscheinlich von einem der importierten Module verursacht. Lassen Sie in diesem Fall die Option deaktiviert.