ArcGIS Server permet d’utiliser un runtime Python 3 pour les scripts ArcPy de ligne de commande. Python 3.x est installé avec ArcGIS Server, mais vous pouvez installer un paquetage de runtime Python 3 qui simplifie l’utilisation dePython 3 avec ArcGIS Server.
Remarque :
Après ArcGIS Server 10.9.1, seul Python 3 sera pris en charge et Python 2.7 ne sera plus installé.
Prise en main
Python propose des bibliothèques tierces que vous pouvez utiliser dans ArcGIS. Pour autant, il peut vous sembler laborieux de gérer quels paquetages sont installés ou non, en particulier si vous travaillez sur plusieurs projets simultanément ou si vous essayez de partager du code avec d’autres utilisateurs. Pour simplifier l’utilisation du runtime Python 3 sur ArcGIS Server pour Linux, utilisez conda pour télécharger et installer le paquetage arcgis-server-py3.
Si vous ne disposez pas déjà de conda, vous pouvez le télécharger depuis le site web Anaconda.
Pour accéder aux fonctions Python d’ArcGIS, notamment ArcPy, installez le paquetage arcgis-server-py3. Dans un environnement conda, utilisez la commande suivante pour installer Python 3 :
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.9.1 :
conda install -c esri arcgis-server-py3=10.9.1
L’installation du paquetage arcgis-server-py3 permet d’ajouter ArcPy, y compris les outils de géotraitement pris en charge et tous les prérequis tiers.
Si vous n’installez pas le paquetage arcgis-server-py3, vous devez appeler Wine lorsque vous exécutez le fichier python.exe installé dans /arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/ dans le répertoire d’installation ArcGIS Server.
Migration
Vous n’utilisez pas le runtime Python 3 avec ArcGIS Server comme le runtime Python 2 ArcGIS Server et d’autres produits ArcGIS, notamment ArcMap. Il existe deux variations principales à prendre compte : les différences au sein même de ArcPy et les changements de version Python.
Modifications des fonctions dans ArcPy
De nombreux outils de géotraitement restent disponibles dans le runtime Python 3 pour ArcGIS Server, à l’exception de quelques-uns. Parmi ces exceptions, on compte les outils des boîtes d’outils Parcel Fabric (ArcMap), 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 qui se trouve 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 comprend également des modifications, dont beaucoup portent sur le remplacement de arcpy.mapping par arcpy.mp.
Changement de version Python
Le runtime ArcGIS Server Python utilise Python 3. Il s’agit d’un changement de taille. La gamme des versions de Python 3 n’est pas compatible avec celle de Python 2. Bien que le langage soit fondamentalement identique, de nombreux détails importants ont été fortement remaniés, notamment en ce qui concerne le fonctionnement des chaînes et des dictionnaires, ainsi que l’organisation de la bibliothèque standard.
Pour l’instant, la communauté Python a transféré la plupart des principales bibliothèques tierces vers Python 3. De plus, au sein de la communauté Python, il a été convenu d’utiliser Python 3 pour tous les nouveaux projets de développement.
Dans la mesure où la version 10.9.1 est la dernière à inclure Python 2.7, vous devez commencer à mettre à jour votre code Python pour le rendre compatible avec Python 3. Si vous procédez à une conversion de code unilatérale de Python 2 à Python 3, vous pouvez faire appel à l’utilitaire de ligne de commande 2to3 disponible pour automatiser une grande partie du processus. Il est important de noter que l’outil 2to3, quoique excellent, n’est pas une solution complète (solution à 95 %, selon certaines estimations) et que des modifications supplémentaires peuvent se révéler nécessaires.
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.
Vous avez un commentaire à formuler concernant cette rubrique ?