Exécution d'un script en cours de processus
Si votre outil de script exécute un script Python, vous devez alors cocher l'option Exécuter le script Python dans le processus pour exécuter le script en cours de processus, comme indiqué ci-dessous. Cette option s'applique uniquement aux scripts Python.
seuls les scripts qui importent ArcPy comme indiqué ci-dessous, ou qui créent l'objet géoprocesseur à l'aide d'arcgisscripting.create(), peuvent être exécutés en cours de processus.
import arcpy
les scripts qui utilisent la répartition (voir ci-dessous) ne peuvent pas être exécutés en cours de processus, même si l'option Exécuter le script Python dans le processus est cochée.
import win32com.client
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
L'option Exécuter le script Python dans le processus existe depuis ArcGIS 9.3. Avant la version 9.3, les scripts Python étaient exécutés hors processus. Pour procéder à une exécution hors processus, ArcGIS doit démarrer un autre processus (pensez-y lorsque vous lancez un autre programme), ce qui prend du temps. L'exécution hors processus engendre également des problèmes de performances au niveau de la communication de messages entre les deux processus. A partir de la version 9.3, Python est intégré à ArcGIS. Les scripts peuvent ainsi être exécutés en cours de processus, faisant disparaître tous les problèmes de temps de démarrage et de surcharge au niveau des messages.
Pour procéder à une exécution en cours de processus, tous les modules chargés avec la directive import de Python doivent posséder la logique nécessaire pour pouvoir s'exécuter en cours de processus. Toutes les bibliothèques Python standard (os, string et time, par exemple) possèdent la logique nécessaire. Il est toutefois possible que des modules spéciaux obtenus auprès de tiers ne possèdent pas la logique nécessaire pour s'exécuter en cours de processus. Si vous rencontrez des problèmes inexplicables lors de l'exécution de votre script, essayez de décocher l'option Exécuter le script Python dans le processus et de réexécuter votre script. Si le problème disparaît lors de l'exécution hors processus, le problème peut venir de l'un des modules que vous avez importés. Dans ce cas, laissez l'option décochée.