Comment accéder aux modules Esri ArcPy depuis Enthought Canopy?

10

J'ai ArcGIS 10.1 en cours d'exécution sur mon système Windows et j'ai également installé la nouvelle distribution 32 bits Canopy Express Enthought Python.

Est-il possible de charger et d'utiliser les modules Esri ArcPy de Canopy?

SharonB
la source
j'ai utilisé la solution de la première réponse et j'ai parfaitement fonctionné mais j'ai besoin de canopy x64, est-il possible d'importer cette lib dans canopy x64?
Μανώλης Παναγιωτάκης

Réponses:

20

Il existe un moyen simple qui n'implique pas de jouer avec votre système PATH ou PYTHONPATH.

Les distributions Python Enthought, y compris Canopy x32, sont autonomes et n'ont besoin de rien dans le registre ou dans les variables d'environnement. Ils peuvent donc bien jouer avec d'autres distributions Python comme celle fournie avec ArcGIS 10.1.

Pour accéder aux modules python ArcGIS 10.1 depuis Enthought Canopy : Créez un fichier "chemin" dans le répertoire utilisateur Canopy qui pointe vers les modules ArcGIS 10.1 python. Sur mon système, j'ai créé un fichier texte appelé arcpy.pthavec ces 4 lignes:

# .pth file for arcpy
C:\ArcGIS\Desktop10.1\bin
C:\ArcGIS\Desktop10.1\arcpy
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

et placez-le arcpy.pthdans le répertoire Canopy User site-packages:

C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\lib\site-packages

Pour accéder aux modules Enthought Canopy à partir d'ArcGIS 10.1 : Créez un fichier "chemin" dans le dossier Arc site-packages qui pointe vers les modules python Canopy. Sur mon système, j'ai créé un fichier texte appelé epd.pthavec ces 3 lignes:

# .pth file for EPD Canopy
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\Lib\site-packages
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\System\Lib\site-packages

puis placez epd.pthdans le dossier Arc site-package:

C:\Python27\ArcGIS10.1\Lib\site-packages

C'est tout ce que j'avais à faire!

-Riches

PS Cela fonctionne car Enthought Canopy 1.0 et ArcGIS10.1 sont dans la même version de Python (2.7) et Numpy (1.6.1). J'espère que nous pourrons continuer à avoir cette compatibilité!

Mise à jour: je viens de l'essayer avec Canopy 1.0.3, qui utilise Numpy 1.7.1, et cela fonctionne toujours, même si ArcGIS 10.1 est à Numpy 1.6.1. Hourra! Hourra!

Rich Signell
la source
3
Quelques notes: 1. Assurez-vous que vous avez installé EPD / Canopy x32 pour l'utiliser avec ArCGIS Desktop. 2. Les fichiers pth sont chargés par ordre alphabétique, donc pour éviter les conflits, j'ai nommé ces fichiers: "zzArcGIS.pth" (dossier Canopy site-packages) et "zzEPD.pth" (dossier ArcGIS site-packages). 3. Si vous utilisez ArcGIS Desktop x64 Background GP ou ArcGIS Server (qui utilise Python x64), vous devez installer EPD / Canopy 64 bits et ajouter des fichiers .pth pointant vers les dossiers des packages de site EPD 64 bits et ArcGIS Python .
Curtis Price
3

Oui, ça l'est. Voici un extrait d'un guide d'installation interne qui vient d'être utilisé pour faire la même chose sur ma machine (veuillez vous assurer que cela s'applique à votre machine particulière):


Configurer l'environnement pour EPD

  1. Ajoutez un nouveau CHEMIN dans vos variables utilisateur (ajoutez l'epd au CHEMIN):

    (modifiez les chemins ci-dessous en fonction de la version d'EPD ou d'ArcGIS que vous utilisez) PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%

  2. Si ArcGIS est installé, définissez la variable d'environnement PYTHONPATH pour
    qu'ArcGIS puisse importer des modules EPD et EPD puisse importer ArcPy:

    PYTHONPATH= C:\Python27_epd32\lib\site-packages; C:\ArcGIS\Desktop10.1\bin; C:\ArcGIS\Desktop10.1\arcpy; C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

Si vous rencontrez des problèmes avec ArcGIS en conflit avec EPD, vous pouvez facilement supprimer EPD de l'environnement ArcGIS en supprimant les références à EPD dans PYTHONPATH.


Avertissement! Bien que les étapes ci-dessous aient fonctionné pour moi dans le passé, je ne suis pas très averti du DOS et je me sentirais mieux si vous consultiez quelqu'un dans votre service informatique pour vous assurer que je ne donne pas de mauvais conseils. Cela dit, lisez la suite ...

L'ajout de chemins d'accès à vos variables d'environnement est assez simple à l'aide de l'invite de commande DOS (Tous les programmes> Accessoires> Invite de commandes). Vous utiliserez la commande setxpour modifier définitivement vos variables d'environnement PATHet PYTHONPATH.

À l'invite de commandes, tapez " echo %PATH%"; il affichera la chaîne qui est la PATHvariable. Il s'agit essentiellement d'une longue chaîne de caractères. Maintenant, essayez avec la PYTHONPATHvariable pour voir ce qu'il y a dedans . Vous remarquerez que chaque chemin dans ces variables est séparé par un point-virgule ( ;). Lorsque nous ajoutons de nouveaux chemins à ces variables, nous devons les inclure.

entrez la description de l'image ici

Essentiellement, ce que vous allez faire, c'est dire à l'ordinateur que vous voulez que vos nouvelles variables PATHet PYTHONPATHégalent une nouvelle chaîne (chemin (s)) (comme C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;) plus ce qui est déjà stocké dans la variable.

La commande que vous exécuterez pour définir votre PATHvariable est: setx PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%(assurez-vous que ces chemins sont applicables à votre système)

entrez la description de l'image ici

La commande que vous exécuterez pour définir votre PYTHONPATHvariable est: setx PYTHONPATH=C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;C:\ArcGIS\Desktop10.1\arcpy;C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts;%PYTHONPATH%(assurez-vous que ces chemins sont applicables à votre système)

REMARQUE: assurez-vous que vous ajoutez " %PATH%" et " %PYTHONPATH%" à la fin des commandes respectives. Si vous ne le faites pas, vous écraserez ces variables avec uniquement les nouveaux chemins et vous perdrez le contenu actuel.

Jason
la source
Merci, Jason! Cependant, j'ai besoin d'un peu plus de détails sur la façon de procéder - comment modifier des variables utilisateur?
SharonB
À l'invite de commande DOS, vous souhaiterez utiliser la commande SETX (2e réponse sur stackoverflow.com/questions/8358265/… ) pour ajouter en permanence les chemins d'accès à vos variables PATH et PYTHONPATH. Vous pouvez également le faire via certains des outils d'administration si je me souviens bien, mais je n'ai pas les autorisations sur mon ordinateur de travail pour les utiliser, donc j'utilise généralement une fenêtre DOS.
Jason
Merci encore ... en tant que novice Python-er qui travaille principalement dans IDLE (n'a jamais touché l'invite de commande DOS) Je ne sais pas / comment ajouter les nouvelles variables d'environnement PATH et PYTHONPATH. Peut-être des captures d'écran et / ou une option pour le faire via une interface graphique (pas DOS)?
SharonB
Whoa. Je vous remercie. C'est impressionnant. Très apprécié, je vous ferai savoir comment ça se passe.
SharonB
Hehe, c'est un processus simple, mais ça a l'air compliqué à cause de tous les chemins! J'espère que tout votre travail se rassemble!
Jason