Procédure : configurer un canal Conda local pour installer l’API Python d’ArcGIS
Résumé
L’API Python d’ArcGIS est distribuée via Conda, un système de gestion de l’environnement et un paquetage apprécié des développeurs Python. Le Guide de l’API Python d’ArcGIS (disponible en anglais) indique la méthode d’installation recommandée. Les clients souhaitant installer cette API sur des ordinateurs non reliés en réseau ou sur des stations de travail appartenant à un réseau isolé, doivent se référer aux instructions d’installation de la section Offline install (Installation ligne) du guide.
Pour les utilisateurs expérimentés souhaitant utiliser l’API à partir de Miniconda (autrement dit, à partir de l’invite de commande Python d’ArcGIS Pro, hébergée par Miniconda) dans des environnements déconnectés, le mieux est de créer un canal Conda local sur site et d’installer l’API à partir de ce canal. Le canal local implique un nombre fini de dépendances exigées par l’API. Les utilisateurs peuvent décider de télécharger et d’héberger autant de paquetages Python supplémentaires qu’ils le souhaitent dans ce canal.
Cet article explique comment créer un canal Conda hors ligne pour l’API Python d’ArcGIS. Vous devez disposer d’une part, d’un ordinateur avec une connexion Internet et sur lequel Anaconda est installé et d’autre part, d’un environnement d’exécution Python 3.5 dans lequel le paquetage requests est installé.
Procédure
Cet article de la base de connaissance est accompagné de deux fichiers : arcgis_v1_dependencies (un fichier texte recensant les dépendances pour l’API Python d’ArcGIS) et download_dependencies (un script Python destiné à télécharger les dépendances à partir du canal anaconda). Téléchargez ces fichiers de prise en charge avant de commencer les étapes ci-dessous.
- arcgis_v1_dependencies.txt
- download_dependencies.py
Configuration d’un environnement pour exécuter le script Python de téléchargement
Installez Anaconda. Appliquez les commandes suivantes depuis votre terminal à l’environnement racine pour installer les paquetages conda-build et requests requis :$ conda install conda-build $ conda install requestsLe nouvel environnement est désormais actif et prêt.
Téléchargement des dépendances
Téléchargez le script Python et le fichier texte complémentaires au même emplacement. Exécutez ensuite le script download_dependencies.py associé comme illustré ci-dessous :$ python download_dependencies.pyLe script a pour effet de télécharger toutes les dépendances du canal en ligne anaconda.org et de les stocker au niveau local. L’exécution du script produit une sortie similaire à celle-ci :
Using environment list file: .\ arcgis_v1_dependencies.txt Getting _nb_ext_conf-0.3.0-py35_0.tar.bz2 Downloaded win-64\_nb_ext_conf-0.3.0-py35_0.tar.bz2 Downloaded win-32\_nb_ext_conf-0.3.0-py35_0.tar.bz2 Downloaded linux-64\_nb_ext_conf-0.3.0-py35_0.tar.bz2 Downloaded linux-32\_nb_ext_conf-0.3.0-py35_0.tar.bz2 Error with download: osx-32 : Downloaded osx-64\_nb_ext_conf-0.3.0-py35_0.tar.bz2 Getting anaconda-client-1.5.5-py35_0.tar.bz2 Downloaded win-64\anaconda-client-1.5.5-py35_0.tar.bz2 Downloaded win-32\anaconda-client-1.5.5-py35_0.tar.bz2 Downloaded linux-64\anaconda-client-1.5.5-py35_0.tar.bz2 Downloaded linux-32\anaconda-client-1.5.5-py35_0.tar.bz2 Error with download: osx-32 : Downloaded osx-64\anaconda-client-1.5.5-py35_0.tar.bz2 ....Au fur et à mesure du téléchargement, le script crée des dossiers au sein de la structure suivante :
\\channel_root\ \linux-64 \linux-32 \osx-64 \osx-32 \win-64 \win-32 \noarch
Indexation du canal Conda local
Lorsque l’exécution du script est terminée, Conda doit indexer cet emplacement. Conda construit un fichier manifeste, repodata.json, dans chacun des dossiers correspondant aux paquetages présents. Cela permet au système Conda (sur les ordinateurs de vos utilisateurs) de traiter cet emplacement comme un canal local et de rechercher et installer les paquetages à partir de cet emplacement au lieu d’Internet.Générez l’index en saisissant les commandes suivantes :
$ conda index \\path\to\channel\win-64 $ conda index \\path\to\channel\win-32 $ conda index \\path\to\channel\linux-64 $ conda index \\path\to\channel\linux-32 $ conda index \\path\to\channel\osx-64 $ conda index \\path\to\channel\osx-32 $ conda index \\path\to\channel\noarchL’exécution des commandes produit une sortie similaire à celle-ci :
$ conda index \\path\to\channel\win-64 updating index in: \\path\to\channel\win-64 updating: pywin32-220-py35_1.tar.bz2 updating: nb_conda_kernels-2.0.0-py35_0.tar.bz2 updating: requests-2.12.1-py35_0.tar.bz2 updating: pyzmq-16.0.2-py35_0.tar.bz2 updating: _nb_ext_conf-0.3.0-py35_0.tar.bz2 updating: ipywidgets-5.2.2-py35_0.tar.bz2 updating: decorator-4.0.10-py35_0.tar.bz2 ....Une fois cette étape terminée, transférez le dossier racine sur un emplacement réseau ou un serveur web, ou utilisez-le localement en guise de canal Conda local.
Installation à partir du canal Conda local
Installez Anaconda ou Miniconda sur un ordinateur non connecté au réseau, Puis recherchez les paquetages sur le canal local pour vous assurer qu’il fonctionne :$ conda search --channel file://path/to/channel --override-channelsVoici à quoi ressemblerait cette instruction sous Windows :
$ conda search --channel D:/code/arcgis_offline_downloads/channel --override-channelsLa commande produit un résultat similaire à celui-ci :
$ conda search --channel file://offline/arcgis_channel/channel --override-channels Fetching package metadata ..... _nb_ext_conf 0.3.0 py35_0 file://offline/arcgis_channel/channel anaconda-client 1.5.5 py35_0 file://offline/arcgis_channel/channel arcgis 0.9 py35_1 file://offline/arcgis_channel/channel clyent 1.2.2 py35_0 file://offline/arcgis_channel/channel colorama 0.3.7 py35_0 file://offline/arcgis_channel/channel decorator 4.0.10 py35_0 file://offline/arcgis_channel/channel ...Etant donné qu’ArcGIS et toutes ses dépendances peuvent maintenant faire l’objet de recherches, l’installation peut être poursuivie. Créez un nouvel environnement Conda ou installez le paquetage arcgis sur l’environnement racine :
conda create --name awesome_arcgis python [cette étape est facultative]Installez à présent ArcGIS à partir du canal Conda :
activate awesome_arcgis conda install --channel //offline/arcgis_channel/channel arcgis --offline --override-channelsCette commande produit la sortie suivante et poursuit l’installation après avoir demandé la confirmation de l’utilisateur :
$ conda install -c //offline/arcgis_channel/channel arcgis --offline --override-channels Fetching package metadata ..... Solving package specifications: .......... Package plan for installation in environment C:\Anaconda3\envs\awesome_arcgis: Les paquetages suivants seront téléchargés : package | build ---------------------------|----------------- colorama-0.3.7 | py35_0 19 KB file://offline/arcgis_channel/channel decorator-4.0.10 | py35_0 12 KB file://offline/arcgis_channel/channel .... Proceed ([y]/n)? y .... Enabling notebook extension arcgis/mapview... - Validating: okAssurez-vous qu’ArcGIS est installé en exécutant une commande de liste Conda :
$ conda list # packages in environment at C:\Anaconda3\envs\awesome_arcgis: # arcgis 0.9 py35_1 file://offline/arcgis_channel/channel colorama 0.3.7 py35_0 file://offline/arcgis_channel/channel decorator 4.0.10 py35_0 file://offline/arcgis_channel/channel ...
Test de l’installation hors ligne
Si le paquetage ArcGIS a été installé dans un nouvel environnement, activez-le. Exécutez ensuite la commande suivante depuis votre terminal :
jupyter notebookCette commande a pour effet de démarrer un nouvel environnement Notebook dans le navigateur. Lancez un nouveau Notebook et saisissez ce qui suit :
from arcgis.gis import GIS() gis = GIS("URL du portail", "nom d’utilisateur", "mot de passe") #se connecter à ArcGIS Enterprise dans votre réseau local gis.map()Ce script permet d’ouvrir le widget cartographique et de charger le fond de carte par défaut.
Conseils et astuces
Différences entre les systèmes d’exploitation- Selon le système d’exploitation qui exécute ce script, il peut être nécessaire de remplacer les barres obliques inverses par des barres obliques (sur un SE de type Unix, tel que Mac, Linux, etc.)
- Le script Python télécharge les paquetages pour l’ensemble des architectures de système d’exploitation. Autrement dit, même si les ordinateurs de destination utilisent des systèmes d’exploitation différents, il n’est pas nécessaire de recommencer les étapes de téléchargement et de construction d’index. Mettez le canal à la disposition des machines de destination sur un serveur web ou un lecteur du réseau, ou en le copiant physiquement sur ces machines, puis en effectuant l’installation à partir de cet emplacement.
Création d’une archive
Si vous souhaitez archiver le canal à des fins d’utilisation ultérieure ou de stockage, il suffit de regrouper le dossier du canal au niveau racine avec tous ses sous-dossiers au sein d’un même fichier tar. Utilisez les commandes suivantes pour ce faire. Si vous travaillez sous Windows, utilisez le PowerShell comme terminal pour exécuter ces commandes :
$ tar -zcvf arcgis_v1_offline_channel.tar.gz path/to/channel/Vous obtenez une sortie similaire à ce qui suit :
a channel a channel/.DS_Store a channel/linux-32 a channel/linux-64 a channel/osx-32 a channel/osx-64 a channel/win-32 a channel/win-64 a channel/win-64/.index.json a channel/win-64/_nb_ext_conf-0.3.0-py35_0.tar.bz2 a channel/win-64/anaconda-client-1.5.5-py35_0.tar.bz2 a channel/win-64/arcgis-1.0-py35_1.tar.bz2 a channel/win-64/clyent-1.2.2-py35_0.tar.bz2 ....Pour décompacter cette archive en vue d’une utilisation ultérieure, exécutez la commande suivante :
$ tar -zxcf arcgis_v1_offline_channel.tar.gz -C ./arcgis_channel
Informations associées
Dernière modification: 7/29/2019
ID d’article: 000014951
Logiciel: ArcGIS API for Python 1.6.1, 1.6, 1.5.3, 1.5.2, 1.5.1, 1.5, 1.4.1, 1.4, 1.3, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2, 1.0.1, 1.0