Skip To Content

Déployer des paquetages Python personnalisés pour ArcGIS Server

ArcGIS Server inclut Python 2.7 pour Windows 64 bits. Dans ArcGIS Enterprise 10.5 et versions ultérieures, l’environnement conda basé sur Python 3 est inclus avec ArcGIS Server.

L’installation Python de ArcGIS Server inclut des paquetages tels que numpy et matplotlib. Toutefois, si vous voulez installer des paquetages Python personnalisés supplémentaires, suivez la procédure suivante :

Services publiés depuis ArcGIS Pro

À l’instar de ArcGIS Pro, ArcGIS Server utilise conda pour gérer les environnements Python. À partir de ArcGIS Server 10.7.1, vous pouvez indiquer un environnement Python pour tous les services de géotraitement. À partir de ArcGIS Server 10.8.1, vous pouvez indiquer un environnement Python pour un seul service de géotraitement.

Les étapes suivantes concernent les services de géotraitement publiés depuis ArcGIS Pro ou basés sur arcpy. Pour plus d’informations sur l’environnement Python dans ArcGIS Pro, reportez-vous à la rubrique Python dans ArcGIS Pro. Il est conseillé de cloner l’environnement Python par défaut pour procéder aux mises à jour. Vous ne pouvez activer qu’un seul environnement Python à la fois pour ArcGIS Server.

Pour plus d’informations sur l’utilisation de conda, reportez-vous à la rubrique Introduction de conda.

Indiquer un environnement Python pour tous les services de géotraitement

Pour déployer des paquetages Python tiers avec ArcGIS Server, suivez les étapes ci-après sur chaque machine de votre site :

  1. Connectez-vous à votre machine ArcGIS Server avec le compte ArcGIS Server, et ouvrez l’invite de commande en tant qu’administrateur.
  2. Définissez le répertoire sur <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Clonez l’environnement Python par défaut du serveur avec un nouveau nom d’environnement, par exemple newenvname, dans le répertoire de l’environnement Python de l’installation ArcGIS Server avec la commande conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname". Remplacez le préfixe avec votre répertoire d’installation et le nouveau nom de l’environnement.
  4. Pour activer l’environnement cloné, exécutez proswap newenvname.
  5. Installez les paquetages Python tiers en exécutant conda install. Utilisez uniquement pip install si conda install n’est pas disponible.
  6. Redémarrez le service ArcGIS Server sur l’onglet Services (Services) du gestionnaire de tâches Windows ou les services Windows. Il faudra quelques minutes avant que tous les services ne soient de nouveau en ligne.
  7. Répétez les étapes 1 à 6 sur chaque machine de votre site ArcGIS Server, le cas échéant.

Pour ajouter des paquetages supplémentaires à l’environnement conda existant, procédez comme suit :

  1. Connectez-vous à votre machine ArcGIS Server.
  2. Depuis le menu Démarrer, ouvrez l’invite de commande Python 3. Elle peut se trouver dans le dossier ArcGIS Server, selon votre système d’exploitation.
  3. Exécutez conda install pour les paquetages qui doivent être déployés. Utilisez uniquement pip install si conda install n’est pas disponible.
  4. Relancez le services de géotraitement dans ArcGIS Server Manager.
  5. Vous pouvez aussi redémarrer le service ArcGIS Server sur l’onglet Services du gestionnaire de tâches Windows. Tous les services seront de nouveau en ligne en quelques minutes.
  6. Répétez les étapes 1 à 5 sur chaque machine de votre site ArcGIS Server, le cas échéant.

Indiquer un environnement Python pour un seul service de géotraitement

Clonez l’environnement Python par défaut du serveur, installez les paquetages Python tiers et modifiez les propriétés de votre service de géotraitement en suivant les étapes ci-après :

  1. Connectez-vous à votre machine ArcGIS Server avec le compte ArcGIS Server, et ouvrez l’invite de commande en tant qu’administrateur.
  2. Définissez le répertoire sur <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Clonez l’environnement Python par défaut du serveur avec un nouveau nom d’environnement, par exemple newenvname, dans le répertoire de l’environnement Python de l’installation ArcGIS Server avec la commande conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname". Remplacez le préfixe avec votre répertoire d’installation et le nouveau nom de l’environnement.
  4. Activez le nouvel environnement dans la fenêtre d’invite de commande avec activate newenvname.
  5. Installez vos paquetages Python avec conda install packagename=version. Une bonne pratique (facultative) consiste à aligner la version de paquetage que vous avez utilisée dans ArcGIS Pro pendant le processus de publication sur la version de paquetage installée sur le serveur.
  6. Une fois tous les paquetages installés, accédez au répertoire administrateur ArcGIS Server. Dans Resources (Ressources) en bas de la page, accédez à services.
  7. Sélectionnez le service de géotraitement pour lequel vous souhaitez indiquer un environnement Python.
  8. Dans Supported Operations (Opérations prises en charge) en bas de la page, cliquez sur edit (modifier).
  9. Dans le fichier JSON du service, ajoutez la paire clé-valeur "condaEnvironmentPath": "<install>\\ArcGIS\\Server\\framework\\runtime\\ArcGIS\\bin\\Python\\envs\\newenvname" aux propriétés. Un fichier JSON simplifié des propriétés du service contient la nouvelle propriété condaEnvironmentPath en tant que

    Service Properties

    {
     "serviceName": "gvonly",
     "type": "GPServer",
     "description": "",
     "allowedUploadFileTypes": "",
     "properties": {
      "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p20\\gvonly.tbx",
      "condaEnvironmentPath": "C:\\Program Files\\ArcGIS\\Server\\framework\\runtime\\ArcGIS\\bin\\Python\\envs\\flaskonly"
     },
     "portalProperties": {
      "isHosted": false,
      "portalItems": [{
       "itemID": "4921223df97744a593d0b776666b9da9",
       "type": "GPServer"
      }]
     },
     "extensions": [{
      "typeName": "WPSServer",
      "properties": {
       "serviceType": "",
       "name": ""
      }
     }],
     "frameworkProperties": {},
     "datasets": []
    }
  10. Cliquez sur le bouton Save Edits (Enregistrer les mises à jour) pour enregistrer vos modifications.
  11. Votre service est automatiquement redémarré.

Services publiés depuis ArcGIS Desktop

Les étapes suivantes s’appliquent aux services de géotraitement publiés depuis ArcMap et au module arcpy basé sur Python 2.7. Appliquez ces étapes sur chaque machine de votre site ArcGIS Server. Le paquetage est installé dans l’environnement par défaut Python 2.7 du serveur et s’applique à tous les services publiés depuis ArcGIS Desktop.

  1. Téléchargez une version Windows 64 bits du paquetage tiers que vous souhaitez installer.
  2. Double-cliquez sur le fichier .msi ou .exe pour installer le paquetage.

En général, les paquetages personnalisés sont installés dans le répertoire C:\Python27\ArcGISx6410.8\lib\site-packages.

Tester les paquetages Python personnalisés pour les services publiés depuis ArcGIS Desktop

Pour vérifier que l’installation du paquetage a abouti, écrivez un script Python pour importer le paquetage que vous avez installé et lancez le script. Si vous avez besoin d’aide pour exécuter les scripts autonomes, appliquez la procédure suivante :

  1. Ouvrez la fenêtre de terminal.
  2. Exécutez le script Python 2.7 du serveur en utilisant le script comme un argument, par exemple, <ArcGISServer_InstallDir>/arcgis/server/tools/python ~/projectX/mytestscript.py.

Remarque :

Les bibliothèques Python installées suite à l’installation de ArcGIS Server (Linux) sont en Python pour Windows 64 bits. C’est pourquoi vous devez toujours utiliser le séparateur de chemin Windows (\) pour accéder à des données et à d’autres modules Python à l’aide de scripts Python autonomes. De même, sachez qu’il existe un répertoire Z:\ qui est apparié au séparateur / du système Linux. Avec un script Python, vous pouvez accéder aux données et à d’autres modules Python avec l’appariement au répertoire Z:\. Par exemple, vous pouvez accéder aux données du répertoire /myuser/myproject/data via le chemin z:\myuser\myproject\data.

Cette règle ne s’applique pas aux scripts Python publiés à partir de ArcGIS Desktop, car le processus de publication convertit tous les chemins au bon format.