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, procédez comme suit :

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 service de géotraitement unique.

Les étapes suivantes concernent les services de géotraitement publiés depuis ArcGIS Pro ou utilisant 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.

Remarque :

Si vous utilisez un environnement cloné créé avant l’application du patch ArcGIS Server log4j, activez l’environnement en exécutant conda activate your_environment, puis exécutez conda update saspy pour résoudre la faille de sécurité pour le log4j utilisé avec l’ancienne version de saspy dans l’environnement cloné. Si le patch est déjà installé, incluez le drapeau --pinned lors du clonage de l’environnement par défaut, détaillé dans les instructions ci-dessous. Après avoir activé l’environnement par défaut, exécutez conda update saspy pour vous assurer de l’absence de faille de sécurité log4j dans l’environnement cloné.

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" --pinned --no-shortcuts. 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 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 du site ArcGIS Server, s’il y a lieu.

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

  1. Connectez-vous à votre machine ArcGIS Server. Vous pouvez avoir besoin d’un compte doté des privilèges administratifs.
  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 service 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 du site ArcGIS Server, s’il y a lieu.

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

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 à la machine ArcGIS Server, puis ouvrez l’invite de commande Python 3 à partir du menu Démarrer. Il est conseillé d’exécuter l’invite de commande en tant qu’administrateur ; sinon, il est possible que vous ne puissiez pas cloner l’environnement vers certains répertoires.
  2. 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" --pinned --no-shortcuts. Remplacez le préfixe avec votre répertoire d’installation et le nouveau nom de l’environnement. Pour cloner l’environnement vers tout répertoire extérieur au répertoire d’installation de ArcGIS Server, exécutez conda create --clone arcgispro-py3 --prefix "<fullpath>\outsideenvname" --pinned --no-shortcuts.
  3. Activez le nouvel environnement dans la fenêtre d’invite de commande avec activate newenvname. Si vous utilisez un répertoire extérieur au répertoire de l’environnement Python de l’installation de ArcGIS Server, indiquez le chemin d’accès complet de l’environnement cloné à l’aide de activate <fullpath>\outsideenvname.
  4. 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.
  5. 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.
  6. Sélectionnez le service de géotraitement pour lequel vous souhaitez indiquer un environnement Python.
  7. Dans Supported Operations (Opérations prises en charge) en bas de la page, cliquez sur edit (modifier).
  8. Dans le fichier JSON du service, ajoutez la paire clé-valeur "condaEnvironmentPath": "newenvname" aux propriétés du service lorsque l’environnement cloné se trouve dans le répertoire de l’environnement Python de l’installation de ArcGIS Server. Si vous utilisez un répertoire extérieur au répertoire de l’environnement Python de l’installation de ArcGIS Server, indiquez le chemin d’accès complet de l’environnement cloné.

    Simplified service properties with a cloned Python environment in the ArcGIS Server installation's Python environment directory.

    {
     "serviceName": "gvonly",
     "type": "GPServer",
     "description": "",
     "allowedUploadFileTypes": "",
     "properties": {
      "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p20\\gvonly.tbx",
      "condaEnvironmentPath": "newenvname",
      "showMessages": "INFO"
     },
     "portalProperties": {
      "isHosted": false,
      "portalItems": [{
       "itemID": "4921223df97744a593d0b776666b9da9",
       "type": "GPServer"
      }]
     },
     "extensions": [{
      "typeName": "WPSServer",
      "properties": {
       "serviceType": "",
       "name": ""
      }
     }],
     "frameworkProperties": {},
     "datasets": []
    }
  9. Cliquez sur le bouton Save Edits (Enregistrer les mises à jour) pour enregistrer vos modifications.
  10. 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. Exécutez ces étapes sur chaque machine du 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.

Test des 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 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 mappé à / sur le système Linux. Avec un script Python, vous pouvez accéder aux données et à d’autres modules Python grâce au mappage 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 format approprié.