Skip To Content

Moteur d’exécution Python 3 pour ArcGIS Server sur Linux

ArcGIS Server permet d'utiliser un moteur d'exécution Python 3 pour les scripts ArcPy de ligne de commande. Les outils de sélection peuvent être exécutés avec un Python 3.x runtime installé indépendamment de ArcGIS Server.

Héritage :

Dans les versions antérieures de ArcGIS Server, les scripts Python pouvaient uniquement s’exécuter dans un shell Linux à l’aide du moteur d’exécution Python 2.7 inclus avec ArcGIS Server. Ce comportement présentait des limitations en ce qui concerne l'utilisation de bibliothèques tierces et l'utilisation de chemins.

Prise en main

Pour commencer à utiliser le moteur d’exécution Python 3 sur ArcGIS Server pour Linux, téléchargez et installez le paquetage arcgis-server-py3 avec conda.

Python possède un riche écosystème de paquetages de codes préexistants qui peuvent être utilisés dans ArcGIS, mais gérer quels paquetages sont installés ou non sur un système peut être une tâche complexe et longue, en particulier si vous travaillez sur plusieurs projets simultanément ou si vous essayez de partager du code avec d’autres utilisateurs.

Pour tirer parti de cette polyvalence, la communauté Python a conçu des méthodes qui permettent de créer des projets dans plusieurs versions de Python, tout en banalisant le processus d'installation de presque tous les paquetages Python accessibles publiquement. Le gestionnaire de paquetages Python le plus populaire et le plus fréquemment utilisé est conda. L’intégration de conda à ArcGIS Server vous permet d’utiliser les fonctions dans l’écosystème Python des paquetages Open Source et tiers issus de ArcGIS Server. Vous pouvez ainsi rapidement installer, exécuter et mettre à jour des paquetages et leurs dépendances pour les utiliser dans votre code Python.

Si vous ne disposez pas déjà de conda, vous pouvez le télécharger depuis le site web Anaconda.

Pour accéder aux fonctionnalités Python d'ArcGIS, notamment ArcPy, le paquetage arcgis-server-py3 peut être installé directement depuis conda. Dans un environnement conda, utilisez la commande suivante :

conda install -c esri arcgis-server-py3=<version>

La valeur <version> indique la version actuelle de la bibliothèque, qui est la même que votre version actuelle de ArcGIS Server, au format n.n.n. Par exemple, pour ArcGIS Server 10.8 :

conda install -c esri arcgis-server-py3=10.8.0

L'installation du paquetage arcgis-server-py3 permet d'ajouter ArcPy, notamment les outils de géotraitement pris en charge et tous les prérequis tiers.

Migration

Vous n’utilisez pas le moteur d’exécution Python 3 avec ArcGIS Server comme le moteur d’exécution Python 2 de ArcGIS Server et d’autres produits ArcGIS, notamment ArcGIS Desktop. Voici deux différences principales à prendre en compte : l’évolution de la version 2 à 3 de Python et les différences au sein de arcpy.

Modification des fonctionnalités dans ArcPy

De nombreux outils de géotraitement resteront disponibles dans le moteur d'exécution Python 3 pour ArcGIS Server, à l'exception de quelques-uns. Parmi ces exceptions, on compte les boîtes à outils Atelier parcellaire, Schematics et Tracking Analyst. Les outils supplémentaires d'autres boîtes à outils ne sont pas disponibles non plus. Pour obtenir une liste exhaustive des outils de géotraitement pris en charge, consultez le fichier readme présent dans le paquetage arcgis-server-py3.

Le module arcpy.mapping a été supprimé et remplacé par un module arcpy.mp dans ArcGIS Pro. Le module arcpy.na inclut également des modifications, dont nombre d'entre elles concernent le remplacement de arcpy.mapping par arcpy.mp.

Modification de la version Python

ArcGIS Server Python runtime utilise Python 3. Il s'agit d'un changement de taille par rapport aux autres produits ArcGIS qui utilisent (et continueront d'utiliser) la gamme Python 2. La gamme des versions de Python 3 n'est pas compatible avec la gamme Python 2. Bien que le langage soit fondamentalement identique, de nombreux détails importants ont été considérablement remaniés, notamment en ce qui concerne le fonctionnement des chaînes et des dictionnaires et l'organisation de la bibliothèque standard.

En cours de développement depuis plusieurs années, Python 3 coexiste avec Python 2 alors que la communauté Python effectue sa migration. La plupart des principales bibliothèques tierces ont été transférées vers Python 3 et la communauté Python a choisi d’utiliser Python 3 dans tous les nouveaux projets de développement.

Vous devez avant tout décider si la mise à jour de votre code Python doit permettre une utilisation avec Python 2 et 3. Si vous effectuez une conversion de code unilatérale de Python 2 à Python 3, vous pouvez faire appel à l'utilitaire de ligne de commande 2to3 pour automatiser une grande partie du processus. Cet utilitaire est disponible avec Python 2 et 3. Il est important de noter que l'outil 2to3, quoiqu'excellent, n'est pas une solution complète (solution à 95 %, selon certaines estimations) : des modifications supplémentaires peuvent s'avérer nécessaires.

Vous pouvez consulter le site web de Lennart Regebro intitulé Porting to Python 3 (http://python3porting.com/) qui constitue une excellente source de référence sur le transfert vers Python 3 et les stratégies de migration. Il est possible de rédiger des scripts qui fonctionneront dans Python 2 et Python 3.

N'oubliez pas que des scripts Python plus simples n'ont pas forcément besoin d'être modifiés et peuvent fonctionner correctement sans modification.


Dans cette rubrique
  1. Prise en main
  2. Migration