Environnement d’exécution Python 3 pour ArcGIS Server sur Linux
Cette rubrique n’est pas pertinente pour ArcGIS Enterprise sous Windows.
ArcGIS Server permet d’utiliser un environnement d’exécution Python 3 pour les scripts ArcPy de ligne de commande. Python 3.x est installé avec ArcGIS Server, mais vous pouvez installer un paquetage d’environnement d’exécution Python 3 qui simplifie l’utilisation de Python 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 de l’environnement d’exécution Python 3 sur ArcGIS Server pour Linux, utilisez conda ou Miniconda pour télécharger et installer le paquetage arcgis-server-py3. L’environnement d’exécution Python 3 sur ArcGIS Server pour Linux nécessite 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 d’ArcGIS Server lors de l’activation de l’environnement conda pour l’environnement d’exécution 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 l’environnement d’exécution 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 d’ArcGIS Server, au format n.n.n. Par exemple, pour ArcGIS Server 11.1, utilisez ce qui 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 d’ArcGIS Server.
Migration
L’utilisation de l’environnement d’exécution Python 3 avec ArcGIS Server est différente de Python 2 avec ArcGIS Server. Il existe deux différences principales à prendre compte : les différences au sein même d’ArcPy et les changements de version de Python.
Modifications des fonctions dans ArcPy
De nombreux outils de géotraitement restent disponibles dans l’environnement d’exécution Python 3 pour ArcGIS Server, mais pas tous. Les outils des boîtes à outils 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 de Python
L’environnement d’exécution Python d’ArcGIS Server utilise Python 3. Il s’agit d’un changement important ; les versions Python 3 sont incompatibles avec les versions 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 vous assurer que le code fonctionne en 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 traitement. Il est important de noter que l’outil 2to3, quoiqu’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.