Exécution d'ArcGIS 10.0 sous Virtualenv


12

Je travaille sur un package Python qui a un mélange d'outils de ligne de commande et d'outils ArcToolbox. Pour le développement Python, il est vraiment utile d'utiliser VirtualEnv, en particulier lorsque vous travaillez avec des installateurs. Existe-t-il un moyen pour qu'ArcMap ou ArcCatalog reconnaissent une session VirtualEnv actuelle dans Python, de sorte que lorsqu'un outil personnalisé est exécuté, il utilise les chemins et packages Python VirtualEnv au lieu des chemins et packages Python par défaut sur c: \ Python26 \ ArcGIS10 .0?

Réponses:


11

Ce n'est pas intégré à l'application, mais je suppose que l'exécution du fichier de commandes qui configure virtualenv dans une cmd.exesession, puis l'exécution de arcmap.exe à partir de la même boîte DOS devrait vous procurer votre virtualenv. ArcMap et les amis vont modifier le chemin légèrement pour inclure les installer de arcgisscriptinget arcpy.

Modifier: vous devrez appeler explicitement le script activate_this à partir de la fenêtre Python dans les applications de bureau pour que cela fonctionne. Si j'ai un VirtualEnv dans c:\Users\jason\myenvje sortirai execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})de la fenêtre Python dans une application de bureau ArcGIS pour le faire fonctionner.


Cela ne semble pas fonctionner. J'ai créé un espace de travail VirtualEnv, je l'ai activé, puis j'ai installé un package que je veux tester à l'intérieur d'ArcCatalog. Jusqu'ici tout va bien. Si j'ouvre un shell Python à l'intérieur de cette session VirtualEnv et que j'importe les packages nouvellement installés - l'importation fonctionne. Si je lance ensuite ArcCatalog et essaie d'appeler l'un de ces packages à partir d'un script de boîte à outils, cela ne fonctionne pas. Si je regarde sys.path depuis le shell Python à l'intérieur d'ArcCatalog, il montre le répertoire Python par défaut pour ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
SagebrushGIS

4
Cherchez à utiliser le activate_this.pyscript également dans le même répertoire Scripts de votre VirtualEnv à partir de la fenêtre Python dans ArcCatalog et ses amis. J'ai pu exécuter execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})et obtenir mon démarrage VirtualEnv depuis ArcMap.
Jason Scheirer

1
Impressionnant! Cela a fait l'affaire.
SagebrushGIS
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.