Déployer des paquetages Python personnalisés pour ArcGIS Server
Un environnement conda basé sur Python 3 est inclus avec ArcGIS Server. L’installation Python d’ArcGIS Server inclut des paquetages tels que numpy et matplotlib. Cependant, si vous souhaitez installer des paquetages Python personnalisés supplémentaires pour vos outils de script et votre boîte à outils Python, suivez les étapes ci-dessous. À l’instar d’ArcGIS Pro, ArcGIS Server utilise conda pour gérer les environnements Python. Pour plus d’informations sur l’utilisation de conda, reportez-vous à la rubrique Introduction de conda.
Pour plus d’informations sur l’environnement Python dans ArcGIS Pro, voir Python dans ArcGIS Pro. Il est conseillé de cloner l’environnement Python par défaut pour procéder aux mises à jour.
Un seul environnement Python applicable à tous les services de géotraitement peut être actif à la fois. Vous pouvez également spécifier des environnements Python pour des services de géotraitement individuels si ceux-ci ont besoin de leurs propres environnements Python personnalisés.
Lors du clonage de l’environnement, assurez-vous que le compte ArcGIS Server dispose des autorisations de lecture et d’exécution sur l’environnement cloné, sinon Python ne s’initialisera pas et le code Python de votre outil ne s’exécutera pas.
Vous devez gérer manuellement l’environnement cloné lors de la désinstallation. Vous devrez également mettre à niveau manuellement un environnement Python cloné avec la commande proup après avoir mis à jour ArcGIS Server.
Indiquer un environnement Python pour tous les services de géotraitement
Pour déployer des paquetages Python tiers avec ArcGIS Server pour tous les services de géotraitement, exécutez les étapes ci-dessous pour chaque machine de votre site.
Remarque :
L’environnement Python de vos services de géotraitement système sera également modifié.
Connectez-vous à votre machine ArcGIS Server avec le compte ArcGIS Server ou un compte ayant accès à l’environnement Python par défaut et au répertoire de destination de l’environnement cloné.
Lancez l’explorateur Wine pour préparer le clonage de l’environnement par défaut.
Exécutez la commande suivante :
source <install>/framework/etc/arcenv wine cmdUne fois Wine activé, clonez l’environnement à l’aide de la commande suivante :
Remarque :
La commande
conda-proclonene nécessite pas d’accès à Internet.Remarque :
Assurez-vous que le compte serveur ArcGIS dispose d’un accès en lecture et écriture à l’environnement cloné.
Remarque :
L’environnement par défaut se trouve généralement dans
<install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.cd "Z:\data\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts" conda-proclone -i <path to default environment> <path to cloned environment>Pour en savoir plus sur
conda-proclone, exécutezconda-proclone -h.Activez l’environnement cloné en exécutant
activate <path to cloned environment>dans la commande Wine.Installez les paquetages personnalisés dans l’environnement cloné activé dans la commande Wine.
Remarque :
La plupart des paquetages Python tiers fonctionneront. Toutefois, si un paquetage émet des appels WIN32 (en interagissant directement ou indirectement avec le système d’exploitation Windows), il ne fonctionnera pas correctement même si la configuration a réussi.
La commande suivante est un exemple d’installation du package Python
flask.conda install flaskBasculez votre serveur vers l’environnement cloné en exécutant la commande suivante dans la commande Wine :
conda proswap -n <cloned environment> --all-users`Remarque :
Si vous utilisez le compte ArcGIS Server pour la session, la commande
--all-usersn’est pas nécessaire. Si vous copiez votre environnement cloné en dehors du dossier par défaut~\Python\envs, indiquez le chemin complet de l’environnement.Remarque :
Tous vos services de géotraitement, y compris les services de géotraitement système, utiliseront l’environnement cloné après la bascule.
Redémarrez le service ArcGIS Server.
Commencez une nouvelle session ou quittez la commande Wine avec
exit().Remarque :
Les scripts
startserveretstopserverse trouvent dans le répertoirescriptsde votre installation ArcGIS Server.Pour un déploiement sur plusieurs machines, répétez les étapes ci-dessus sur toutes les autres machines de votre site ArcGIS Server.
Indiquer un environnement Python pour un service de géotraitement unique
Suivez les étapes ci-dessous pour configurer un environnement pour un seul service de géotraitement.
Connectez-vous à votre machine ArcGIS Server avec le compte ArcGIS Server ou un compte ayant accès à l’environnement Python par défaut et au répertoire de destination de l’environnement cloné.
Lancez l’explorateur Wine pour préparer le clonage de l’environnement par défaut.
Exécutez la commande suivante :
source <install>/framework/etc/arcenv wine cmdUne fois Wine activé, clonez l’environnement à l’aide de la commande suivante :
Remarque :
La commande
conda-proclonene nécessite pas d’accès à Internet.Remarque :
Assurez-vous que le compte serveur ArcGIS dispose d’un accès en lecture et écriture à l’environnement cloné.
Remarque :
L’environnement par défaut se trouve généralement dans
<install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.cd "<path to server install>\framework\runtime\ArcGIS\bin\Python\Scripts" conda-proclone -i <path to default environment> <path to cloned environment>Pour en savoir plus sur
conda-proclone, exécutezconda-proclone -h.Activez l’environnement cloné en exécutant
activate <path to cloned environment>dans la commande Wine.Installez les paquetages personnalisés dans l’environnement cloné activé dans la commande Wine.
Remarque :
La plupart des paquetages Python tiers fonctionneront. Toutefois, si un paquetage émet des appels WIN32 (en interagissant directement ou indirectement avec le système d’exploitation Windows), il ne fonctionnera pas correctement même si la configuration a réussi.
La commande suivante est un exemple d’installation du package Python
flask.conda install flaskUne fois tous les paquetages installés, accédez au répertoire administrateur ArcGIS Server et cliquez sur la ressource services.
Sélectionnez le service de géotraitement pour lequel vous souhaitez indiquer un environnement Python.
Dans Supported Operations (Opérations prises en charge) en bas de la page, cliquez sur edit (mettre à jour).
Dans le fichier JSON du service, ajoutez la paire clé-valeur
"condaEnvironmentPath": "<full path to cloned-env>"aux propriétés du service.Remarque :
Si vous utilisez un répertoire extérieur au répertoire de l’environnement Python de l’installation d’ArcGIS Server, vous devez indiquer le chemin d’accès complet de l’environnement cloné.
Voici un fichier JSON de propriétés de service simplifié incluant la propriété
condaEnvironmentPath:{ "serviceName": "regionalAnalysis", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "Z:\\data\\arcgis\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\Analysis.GPServer\\extracted\\p30\\RegionalAnalysis.tbx", "condaEnvironmentPath": <"path to cloned environment">, "showMessages": "INFO" }, "portalProperties": { "isHosted": false, "portalItems": [{ "itemID": "4921223df97744a593d0b776666b9da9", "type": "GPServer" }] }, "extensions": [{ "typeName": "WPSServer", "properties": { "serviceType": "", "name": "" } }], "frameworkProperties": {}, "datasets": [] }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 d’ArcGIS Server
Auparavant, lors de la mise à niveau d’ArcGIS Server vers une version plus récente, vous deviez supprimer les environnements précédemment clonés. Vous deviez ensuite cloner l’environnement Python à partir de l’instance ArcGIS Server mise à niveau et reconfigurer vos services.
Dans ArcGIS Server 12.1 et versions ultérieures, vous pouvez utiliser la commande conda proup pour mettre à niveau les environnements Python clonés à partir de versions antérieures d’ArcGIS Server en exécutant les étapes suivantes :
Connectez-vous à votre machine ArcGIS Server avec le compte ArcGIS Server ou un compte ayant accès à l’environnement cloné et à l’installation du serveur.
Lancez la commande Wine et accédez au répertoire
<install>\server\framework\runtime\ArcGIS\bin\Python\Scripts.Mettez à niveau l’environnement en exécutant
conda proup -n <environment name>ouconda proup -p <environment directory path>.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 d’ArcGIS Server. Cette fonction n’est pas disponible dans les environnements déconnectés.
Indiquer un environnement Python pour tous les services de géotraitement
Pour déployer des paquetages Python tiers avec ArcGIS Server pour tous les services de géotraitement, exécutez les étapes ci-dessous pour chaque machine de votre site. L’environnement Python de vos services de géotraitement système sera également modifié.
Connectez-vous à votre machine ArcGIS Server et ouvrez la fenêtre d’invite de commande en tant qu’administrateur.
Remarque :
Vous aurez peut-être besoin de privilèges administratifs, selon l’emplacement de l’environnement conda existant.
Accédez au répertoire
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Clonez l’environnement Python par défaut du serveur avec un nouveau nom d’environnement en utilisant
conda createouconda proclone:Remarque :
L’emplacement proposé se trouve dans le répertoire de l’environnement Python de l’installation ArcGIS Server. Sinon, vous pouvez spécifier un autre emplacement pour lequel le compte ArcGIS Server dispose des autorisations d’accès.
- Utilisez la commande suivante pour cloner l’environnement avec
conda create:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsÀ partir de la version 12.1, utilisez
conda proclonepour cloner l’environnement si ArcGIS Server n’a pas accès à Internet ou si vous préférez une copie locale d’un environnement existant pour un traitement plus rapide. Vous pouvez remplacerarcigspro-py3par un autre chemin d’environnement Python existant en entrée à cloner.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Utilisez la commande suivante pour cloner l’environnement avec
Exécutez
conda proswap -n <new environment name> --all-userspour activer l’environnement cloné.Remarque :
L’argument
--all-usersest facultatif si vous êtes connecté à votre machine en tant qu’utilisateur du compte ArcGIS Server. Il est obligatoire dans le cas contraire.Remarque :
Si l’environnement conda cloné se trouve en dehors de
{ServerInstallation}\framework\runtime\ArcGIS\bin\Python\envs\, indiquez le chemin d’accès complet à cet emplacement à l’aide deconda proswap -p "<full-path-to-cloned-directory>" --all-users.Installez les paquetages Python tiers en exécutant
conda install.Remarque :
Utilisez uniquement
pip installsiconda installn’est pas disponible.Redémarrez le service ArcGIS Server.
Remarque :
Il faudra quelques minutes avant que tous les services ne soient de nouveau en ligne.
Répétez les étapes 1 à 6 sur chaque machine de votre site ArcGIS Server pour un déploiement sur plusieurs machines.
Ajouter des paquetages supplémentaires
Pour ajouter des paquetages à l’environnement conda existant, procédez comme suit :
Connectez-vous à votre machine ArcGIS Server. Vous aurez peut-être besoin de privilèges administratifs, selon l’emplacement de l’environnement conda existant.
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à partir de<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Exécutez
conda installpour les paquetages qui doivent être déployés.Remarque :
Utilisez uniquement
pip installsiconda installn’est pas disponible.Redémarrez le service de géotraitement dans ArcGIS Server Manager.
Redémarrez le service ArcGIS Server (facultatif).
Remarque :
Tous les services redémarrent au bout de quelques minutes.
Si vous avez un déploiement sur plusieurs machines, répétez les étapes 1 à 5 sur chaque machine de votre site ArcGIS Server.
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 :
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.
Clonez l’environnement Python par défaut du serveur avec un nouveau nom d’environnement en utilisant
conda createouconda proclone:Remarque :
L’emplacement proposé se trouve dans le répertoire de l’environnement Python de l’installation ArcGIS Server. Sinon, vous pouvez spécifier un autre emplacement pour lequel le compte ArcGIS Server dispose des autorisations d’accès.
- Utilisez la commande suivante pour cloner l’environnement avec
conda create:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsÀ partir de la version 12.1, utilisez
conda proclonepour cloner l’environnement si ArcGIS Server n’a pas accès à Internet ou si vous préférez une copie locale d’un environnement existant pour un traitement plus rapide. Vous pouvez remplacerarcigspro-py3par un autre chemin d’environnement Python existant en entrée à cloner.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Utilisez la commande suivante pour cloner l’environnement avec
Activez le nouvel environnement dans la fenêtre d’invite de commande avec
activate <new environment name>. Si vous utilisez un répertoire extérieur au répertoire de l’environnement Python de l’installation d’ArcGIS Server, indiquez le chemin d’accès complet de l’environnement cloné à l’aide deactivate <fullpath>\<new environment name>.Installez des paquetages Python avec
conda install packagename=version.Il est conseillé d’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.
Une fois tous les paquetages installés, accédez au répertoire administrateur ArcGIS Server et cliquez sur services dans Resources (Ressources).
Sélectionnez le service de géotraitement pour lequel vous souhaitez indiquer un environnement Python.
Dans Supported Operations (Opérations prises en charge), en bas de la page, cliquez sur edit (mettre à jour).
Dans le fichier JSON du service, ajoutez la paire clé-valeur
"condaEnvironmentPath": <"new environment name">ou"condaEnvironmentPath": "<full path to new environment>"aux propriétés du service si l’environnement cloné se trouve dans le répertoire de l’environnement Python de l’installation d’ArcGIS Server. Si vous utilisez un répertoire extérieur au répertoire de l’environnement Python de l’installation d’ArcGIS Server, vous devez indiquer le chemin d’accès complet de l’environnement cloné. Voici un exemple de fichier JSON de propriétés de service simplifié incluant la propriétécondaEnvironmentPath:{ "serviceName": "gvonly", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p30\\gvonly.tbx", "condaEnvironmentPath": <"new environment name">, "showMessages": "INFO" }, "portalProperties": { "isHosted": false, "portalItems": [{ "itemID": "4921223df97744a593d0b776666b9da9", "type": "GPServer" }] }, "extensions": [{ "typeName": "WPSServer", "properties": { "serviceType": "", "name": "" } }], "frameworkProperties": {}, "datasets": [] }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 d’ArcGIS Server
Utilisez la commande conda proup pour mettre à niveau les environnements Python clonés à partir de versions antérieures d’ArcGIS Server, en procédant comme suit :
Connectez-vous à votre machine ArcGIS Server et ouvrez la fenêtre d’invite de commande en tant qu’administrateur.
Accédez au répertoire
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Mettez à niveau l’environnement en exécutant
conda proup -n <environment name>ouconda proup -p <environment directory path>.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 d’ArcGIS Server. Cette fonction n’est pas non plus disponible dans un environnement déconnecté.