Ejecutar ArcGIS 10.0 bajo Virtualenv

12

Estoy trabajando en un paquete de Python que tiene una combinación de herramientas de línea de comandos y herramientas de ArcToolbox. Para el desarrollo de Python, es realmente útil usar VirtualEnv, especialmente cuando se trabaja con instaladores. ¿Hay alguna manera de que ArcMap o ArcCatalog reconozcan una sesión VirtualEnv actual en Python, de modo que cuando se ejecutan herramientas personalizadas se utilicen las rutas y paquetes de VirtualEnv Python en lugar de las rutas y paquetes predeterminados de Python en c: \ Python26 \ ArcGIS10 .0?

SagebrushGIS
fuente

Respuestas:

11

Eso no está integrado en la aplicación, pero supongo que ejecutar el archivo por lotes que configura virtualenv en una cmd.exesesión y luego ejecutar arcmap.exe desde el mismo cuadro de DOS debería obtener su virtualenv. ArcMap y amigos van a modificar la ruta ligeramente para incluir la década de instalar arcgisscriptingy arcpy.

Editar: deberá llamar explícitamente al script enable_this desde la ventana de Python en las aplicaciones de escritorio para que esto funcione. Si tengo un virtualenv en c:\Users\jason\myenvI emitirá execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})desde la ventana de Python en una aplicación de escritorio de ArcGIS para ponerlo en marcha.

Jason Scheirer
fuente
Eso no parece funcionar. Creé un espacio de trabajo VirtualEnv, lo activé, luego instalé un paquete que quiero probar dentro de ArcCatalog. Hasta aquí todo bien. Si abro un shell de Python dentro de esta sesión de VirtualEnv e importo los paquetes recién instalados, la importación funciona. Si luego ejecuto ArcCatalog e intento llamar a uno de estos paquetes desde un script de caja de herramientas, no funciona. Si miro sys.path desde el shell de Python dentro de ArcCatalog, muestra el directorio predeterminado de Python para ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0).
SagebrushGIS
44
Busque el uso del activate_this.pyscript también en el mismo directorio de Scripts de su VirtualEnv desde la ventana de Python en ArcCatalog y sus amigos. Pude ejecutar execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})y obtener mi VirtualEnv arrancado desde ArcMap.
Jason Scheirer
1
¡Increíble! Eso hizo el truco.
SagebrushGIS