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 moteur d'exécution Python 3.5 installé indépendamment d'ArcGIS Server.
Héritage :
Dans les versions antérieures d’ArcGIS Server sur Linux, 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-<arcgis version number>-py3 avec conda.
Python possède un riche écosystème de paquetages de codes préexistants qui peuvent être utilisés au sein d'ArcGIS, mais la gestion des paquetages qui sont installés ou non sur un système peut être complexe et longue, en particulier si vous utilisez plusieurs projets en même temps 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 fonctionnalités dans l'écosystème de Python des paquetages Open Source et tiers au sein d'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 n'avez pas encore conda, vous pouvez le télécharger ici.
Pour accéder aux fonctionnalités Python d'ArcGIS, notamment ArcPy, le paquetage arcgis-server-<arcgis version number>-py3 peut être installé directement depuis conda. Au sein d'un environnement conda, utilisez la commande suivante :
conda install -c esri arcgis-server-<arcgis version number>-py3
L'installation du paquetage arcgis-server-<arcgis version number>-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 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 inhérentes à 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-<arcgis version number>-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
Le moteur d'exécution Python d'ArcGIS Server utilise Python 3.5. 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.
Vous avez un commentaire à formuler concernant cette rubrique ?