Skip To Content

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

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 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.

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 et ouvrez la fenêtre d’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 avec un nouveau nom d’environnement L’emplacement proposé se trouve au niveau du répertoire d’environnement Python de l’installation ArcGIS Server. Exécutez la commande conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts en utilisant un modèle newenvname. Remplacez le préfixe avec votre répertoire d’installation et le nouveau nom de l’environnement. D’autre part, vous pouvez spécifier un emplacement à l’extérieur du répertoire d’installation.
  4. Pour activer l’environnement cloné, exécutez conda proswap -n newenvname --all-users. L’argument --all-users est facultatif si vous êtes connecté à votre machine en tant qu’utilisateur du compte ArcGIS Server. Il est obligatoire dans le cas contraire. Si votre environnement conda cloné se trouve à l’extérieur de l’emplacement proposé, indiquez le chemin d’accès complet à cet emplacement en utilisant conda proswap -p "<full-path-to-cloned-directory>" --all-users
  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. 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 pour un déploiement sur plusieurs machines.

Ajouter d’autres paquetages

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

  1. Connectez-vous à votre machine ArcGIS Server. Vous aurez peut-être besoin de privilèges administratifs selon l’emplacement de l’environnement Conda existant.
  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. Si elle n’est pas disponible dans le menu Démarrer, vous pouvez lancer proenv.bat au niveau de <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  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. Tous les services redémarreront au bout de quelques minutes.
  6. Répétez les étapes 1 à 5 sur chaque machine de votre site ArcGIS Server pour un déploiement sur plusieurs machines.

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" ou "condaEnvironmentPath": "<full path to 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, vous devez indiquer le chemin d’accès complet de l’environnement cloné. Un fichier JSON simplifié des propriétés du service qui contient la nouvelle propriété condaEnvironmentPath se présente comme suit :

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

    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\\p30\\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.

Votre service est automatiquement redémarré.