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.
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. Afin de simplifier l’utilisation du runtime Python 3 sur ArcGIS Server pour Linux, utilisez conda ou Miniconda pour télécharger et installer le paquetage arcgis-server-py3. Le runtime Python 3 sur ArcGIS Server pour Linux requiert un programme d’installation 64 bits.
Si vous ne disposez pas déjà de conda ou de Miniconda, vous pouvez le télécharger depuis le site Web Anaconda.
Dans un terminal, définissez la variable ARCGISHOME sur le répertoire d’installation de ArcGIS Server lors de l’activation de l’environnement conda pour le runtime Python 3 sur ArcGIS Server pour Linux : export ARCGISHOME=/path/to/arcgis/server.
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 le runtime Python 3 sur ArcGIS Server pour Linux :
conda install -c esri arcgis-server-py3=<ArcGIS Server version>
La valeur <ArcGIS Server 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 11.1, procédez comme suit :
conda install -c esri arcgis-server-py3=11.1.0
Pour vérifier la version du paquetage arcgis-server-py3, utilisez la commande suivante :
conda list arcgis-server-py3
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 path/to/arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/ dans le répertoire d’installation ArcGIS Server.
Migration
L’utilisation du paquetage d’exécution Python 3 avec ArcGIS Server diffère de l’utilisation de Python 2 avec ArcGIS Server. 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. Les outils des boîtes à outils Atelier parcellaire (ArcMap), Schematics et Tracking Analyst ne sont pas inclus. 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 module d’exécution 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.
ArcGIS Server ne prend plus en charge Python 2.7. Pour continuer à utiliser votre code Python avec ArcGIS Server, vous devez vérifier qu’il fonctionne dans Python 3.
Si vous effectuez une conversion de code unilatérale de Python 2 à Python 3, vous pouvez utiliser un utilitaire de ligne de commande 2to3 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 ?