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 ci-après 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 ArcGIS Server de l’installation Python. 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. Exécutez conda proswap -n newenvname --all-users pour activer l’environnement cloné.

    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 l’environnement conda cloné se trouve en dehors de l’emplacement proposé, indiquez le chemin d’accès complet à cet emplacement à l’aide de 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.

    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 exécuter 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 ArcGIS Server de l’installation Python 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 les 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 que tous les paquetages ont été installés, accédez au répertoire administrateur ArcGIS Server, puis, dans Resources (Ressources), dans la partie inférieure de la page, accédez àservices (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 si 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 ArcGIS Server de l’installation de Python, 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.

Le service est automatiquement redémarré.

Mettre à niveau un environnement Python cloné après une mise à niveau de ArcGIS Server

Généralement, lors de la mise à niveau de ArcGIS Server vers une version plus récente, vous devez supprimer les environnements précédemment clonés. Vous devez ensuite cloner l’environnement Python à partir de l’instance ArcGIS Server mise à niveau et reconfigurer vos services.

Dans ArcGIS Server 11.0, utilisez la commande conda proup pour mettre à niveau les environnements Python clonés à partir de versions antérieures de ArcGIS Server, en procédant comme suit :

  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. Activez l’environnement conda à mettre à niveau en exécutant conda activate <environment name or path>.
  4. Une fois qu’il a été activé, mettez-le à niveau en exécutant conda proup -n <environment name> ou conda proup -p <environment directory path>.
  5. Une fois que l’environnement Python a été mis à niveau, redémarrez tous les services de géotraitement utilisés par cet environnement conda ou redémarrez le service ArcGIS Server.

Pour en savoir plus sur la commande conda proup, utilisez conda proup --help. Cette fonction ne peut pas être utilisée pour rétrograder un environnement après une rétrogradation de ArcGIS Server. Cette fonction n’est pas non plus disponible dans un environnement déconnecté.