¿Cómo acceder a los módulos de Esri ArcPy desde Enthought Canopy?

10

Tengo ArcGIS 10.1 ejecutándose en mi sistema de Windows y también he instalado la nueva distribución Canopy Express Enthought Python de 32 bits.

¿Es posible cargar y usar los módulos Esri ArcPy de Canopy?

SharonB
fuente
Utilicé la solución de la primera respuesta y funcioné perfectamente, pero necesito canopy x64, ¿hay alguna forma de importar esta lib en canopy x64?
Μανώλης Παναγιωτάκης

Respuestas:

20

Hay una manera fácil que no implica jugar con su sistema PATH o PYTHONPATH.

Las distribuciones de Enthought Python, incluida Canopy x32, son independientes y no necesitan nada en el registro ni en las variables de entorno. Para que puedan jugar bien con otras distribuciones de Python como la que viene con ArcGIS 10.1.

Para acceder a los módulos de Python de ArcGIS 10.1 desde Enthought Canopy : Cree un archivo de "ruta" en el directorio de usuarios de Canopy que apunte a los módulos de Python de ArcGIS 10.1. En mi sistema, creé un archivo de texto llamado arcpy.pthcon estas 4 líneas:

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

y poner arcpy.pthen el directorio de paquetes de sitio de Canopy User:

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

Para acceder a los módulos de Enthought Canopy desde ArcGIS 10.1 : Cree un archivo de "ruta" en la carpeta de paquetes de sitio de Arc que apunte a los módulos de Python de Canopy. En mi sistema, creé un archivo de texto llamado epd.pthcon estas 3 líneas:

# .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

y luego poner epd.pthen la carpeta del paquete del sitio Arc:

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

¡Eso es todo lo que necesitaba hacer!

-Rico

PD Esto funciona porque Enthought Canopy 1.0 y ArcGIS10.1 están en la misma versión de Python (2.7) y Numpy (1.6.1). ¡Espero que podamos seguir teniendo esta compatibilidad!

Actualización: acabo de probar esto con Canopy 1.0.3, que usa Numpy 1.7.1, y aún funciona, aunque ArcGIS 10.1 está en Numpy 1.6.1. ¡Hurra! Yippee!

Rich Signell
fuente
3
Algunas notas: 1. Asegúrese de haber instalado EPD / Canopy x32 para usar con ArCGIS Desktop. 2. Los archivos pth se cargan en orden alfabético, por lo que para evitar conflictos he nombrado estos archivos: "zzArcGIS.pth" (carpeta de paquetes de sitio de Canopy) y "zzEPD.pth" (carpeta de paquetes de sitio de ArcGIS). 3. Si está utilizando ArcGIS Desktop x64 Background GP, o ArcGIS Server (que usa Python x64) necesita instalar EPD / Canopy de 64 bits y agregar archivos .pth que apuntan a las carpetas de paquetes de sitio de EPD de 64 bits y ArcGIS Python .
Curtis Precio
3

Sí lo es. Aquí hay un extracto de una guía de instalación interna que se utilizó para hacer lo mismo en mi máquina (asegúrese de que se aplique a su máquina en particular):


Configurar entorno para EPD

  1. Agregue una nueva RUTA en sus variables de usuario (anteponga la EPD a la RUTA):

    (edite las rutas a continuación según la versión de EPD o ArcGIS que esté utilizando) PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%

  2. Si ArcGIS está instalado, configure la variable de entorno PYTHONPATH para que
    ArcGIS pueda importar módulos EPD y EPD pueda importar 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 tiene problemas con ArcGIS en conflicto con EPD, puede eliminar fácilmente EPD del entorno de ArcGIS eliminando las referencias a EPD en PYTHONPATH.


¡Descargo de responsabilidad! Si bien los pasos a continuación me han funcionado en el pasado, no soy una persona muy conocedora de DOS y me sentiría mejor si consultara a alguien en su departamento de TI para asegurarse de que no estoy dando malos consejos. Dicho esto, sigue leyendo ...

Agregar rutas a las variables de entorno es bastante sencillo utilizando el símbolo del sistema de DOS (Todos los programas> Accesorios> Símbolo del sistema). Que va a utilizar el comando setxpara alterar permanentemente PATHy PYTHONPATHvariables de entorno.

En el símbolo del sistema, escriba " echo %PATH%"; imprimirá la cadena que es la PATHvariable. Esencialmente es solo una larga cadena de caracteres. Ahora inténtalo con la PYTHONPATHvariable para ver qué hay en esa. Notará que cada ruta en esas variables está separada por un punto y coma ( ;). Cuando agregamos nuevas rutas a estas variables, debemos incluirlas.

ingrese la descripción de la imagen aquí

Esencialmente, lo que estará haciendo es decirle a la computadora que desea que sus nuevas PATHy PYTHONPATHvariables sean iguales a una nueva cadena (ruta (s)) (como C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;) más lo que ya está almacenado en la variable.

El comando que ejecutará para establecer su PATHvariable es: setx PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%(asegúrese de que estas rutas sean aplicables a su sistema)

ingrese la descripción de la imagen aquí

El comando que ejecutará para establecer su PYTHONPATHvariable es: 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%(asegúrese de que estas rutas sean aplicables a su sistema)

NOTA: Asegúrese de agregar " %PATH%" y " %PYTHONPATH%" al final de los comandos respectivos. Si no lo hace, sobrescribirá esas variables solo con las nuevas rutas y perderá el contenido actual.

Jason
fuente
Gracias Jason! Sin embargo, necesito un poco más de detalles sobre cómo hacer esto: ¿cómo edito las variables de usuario?
SharonB
En el símbolo del sistema de DOS, querrá usar el comando SETX (segunda respuesta en stackoverflow.com/questions/8358265/… ) para anteponer permanentemente las rutas a sus variables PATH y PYTHONPATH. También puedo hacerlo a través de algunas de las herramientas administrativas si no recuerdo mal, pero no tengo permisos en mi computadora de trabajo para usarlas, por lo que generalmente uso una ventana de DOS.
Jason
Gracias de nuevo ... como un Python-er novato que trabaja principalmente en IDLE (nunca tocó el símbolo del sistema de DOS) No sé / cómo agregar las nuevas variables de entorno PATH y PYTHONPATH. ¿Quizás capturas de pantalla y / o una opción para hacer esto a través de una GUI (no DOS)?
SharonB
Whoa Gracias. Esto es impresionante Muy apreciado, te diré cómo va.
SharonB
Jeje, es un proceso simple, ¡pero parece complicado debido a todos los caminos! ¡Espero que todo tu trabajo se esté uniendo!
Jason