Esecuzione di ArcGIS 10.0 in Virtualenv


12

Sto lavorando su un pacchetto Python che ha una combinazione di strumenti da riga di comando e strumenti ArcToolbox. Per lo sviluppo di Python è davvero utile usare VirtualEnv, specialmente quando si lavora con i programmi di installazione. Esiste un modo per consentire ad ArcMap o ArcCatalog di riconoscere una sessione VirtualEnv corrente in Python, in modo che quando viene eseguito uno strumento personalizzato utilizzi i percorsi e i pacchetti Python di VirtualEnv invece dei percorsi e pacchetti Python predefiniti in c: \ Python26 \ ArcGIS10 0,0?

Risposte:


11

Non è integrato nell'applicazione, ma suppongo che l'esecuzione del file batch che configura virtualenv in una cmd.exesessione e quindi l'esecuzione di arcmap.exe dalla stessa casella DOS dovrebbe farti ottenere virtualenv. ArcMap e gli amici potranno modificare il percorso un po 'per includere le installazione di arcgisscriptinge arcpy.

Modifica: sarà necessario chiamare esplicitamente lo script activ_this dalla finestra di Python nelle app desktop per farlo funzionare. Se ho un virtualenv in c:\Users\jason\myenvfarò rilasciare execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})dalla finestra Python in un'applicazione ArcGIS desktop per farlo funzionare.


Non sembra funzionare. Ho creato uno spazio di lavoro VirtualEnv, l'ho attivato, quindi ho installato un pacchetto che voglio testare all'interno di ArcCatalog. Fin qui tutto bene. Se apro una shell Python all'interno di questa sessione di VirtualEnv e importare i pacchetti appena installati, l'importazione funziona. Se quindi avvio ArcCatalog e provo a chiamare uno di questi pacchetti da uno script della casella degli strumenti, non funziona. Se guardo sys.path dalla shell Python all'interno di ArcCatalog, mostra la directory Python predefinita per ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
SagebrushGIS

4
Cerca di utilizzare lo activate_this.pyscript anche nella stessa directory degli script di VirtualEnv dalla finestra di Python in ArcCatalog e amici. Sono stato in grado di eseguire execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})e ottenere il mio avvio VirtualEnv da ArcMap.
Jason Scheirer,

1
Eccezionale! Questo ha funzionato.
SagebrushGIS
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.