¿Conseguir que ArcPy trabaje con Anaconda?

23

Estoy tratando de seguir las instrucciones paso a paso en la respuesta a " cómo separar la instalación de Python con ArcGIS ", pero no puedo encontrar el archivo de ruta DTBGGP64.pth, en C:\Python27\ArcGIS10.2\Lib\site-packages.

¿Alguien ha enfrentado un problema similar?

Me pregunto si hay una solución al incluir un archivo de ruta que le dice a Anaconda dónde está instalado arcpy. Traté de crear un archivo .pth que contiene el siguiente texto:

# .pth file for arcpy

C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\Scripts

y lo guardé en C:\Anaconda\Lib\site-packages(es decir, si aquí es donde se guardan todos los paquetes) pero aparece el siguiente error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\__init__.py", line 21, in <module>
    from arcpy.geoprocessing import gp
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\__init__.py", line 14, in <module>
    from _base import *
  File "C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\geoprocessing\_base.py", line 14, in <module>
    import arcgisscripting
ImportError: DLL load failed: %1 is not a valid Win32 application.

Estoy ejecutando conda 3.7-py27 en una plataforma de Windows 7 (64 bits). Anaconda está instalado C:\Anaconday ArcMap está instalado C:\ArcGIS\Desktop10.2. ¿Existe alguna solución alternativa para que arcpy funcione con Anaconda? Solo quiero poder ejecutar mis scripts desde Powershell.

usuario26750
fuente
solo para estar seguro: cuando escribe 'python' en un indicador de cmd, ¿qué versión / instalación hace eco? (es decir, ¿arcgis o anaconda?) - ¡Uy, acabo de ver que esto está un poco anticuado. problema resuelto por ahora.
fluidmotion
Un desarrollador de Esri UC me contó que Anacondas se integrará en ArcGIS 10.5. Recomendaría simplemente instalar los módulos que necesita, de lo contrario, podría complicarse.
dgrubman
Parece que este ^ es el caso de los requisitos del sistema de ArcGIS 10.5
WxCZar

Respuestas:

13

Está utilizando una versión de Python de 64 bits en su instalación de Anaconda y Python de ArcMap es de 32 bits. Deberá instalar una compilación ArcGIS de 64 bits (ya sea Geoprocesamiento en segundo plano de 64 bits o ArcGIS for Server) y apuntar a eso, o instalar una instancia de Anaconda de 32 bits e intentarlo nuevamente. Vea la página de descargas y obtenga el instalador de 32 bits.

Jason Scheirer
fuente
33

Este tutorial le muestra cómo configurar el entorno de conda para que funcione con ArcGIS 10.4 y ArcGIS Pro 1.3.

Flujo de trabajo para configurar Anaconda con ArcGIS 10.4

  • Instale Anaconda sin ensuciar el entorno de Windows (rutas, registro) para romper la pila de Python de Esri
  • Configure Anaconda con los complementos particulares que desee, y
  • Configure Python de ArcGIS para que conozca el contenido apropiado de Anaconda.

1) Instale Anaconda para todos los usuarios

  1. Vaya a http://continuum.io/downloads
  2. Descargue la versión de 32 bits de Anaconda (Python 2.7)
  3. En los cuadros de diálogo de instalación:
    • Seleccione instalar para todos los usuarios
    • Instalar en una carpeta por defecto (C: \ Anaconda2)
    • IMPORTANTE : para evitar romper ArcGIS (u otro software), desmarque las casillas de verificación (a) haga que Anaconda sea la Python predeterminada y (b) agregue Python de Anaconda a la RUTA.
  4. Vaya a Inicio> Todos los programas (aplicaciones)> Anaconda2 (32 bits)> Símbolo de Anaconda. Haga clic derecho, ejecutar como administrador

2) Configurar un entorno Anaconda para usar con ArcGIS

  1. Encuentre las versiones de numpy y matplotlib que ArcGIS está utilizando.
Abra ArcMap y su ventana de Python e ingrese estos comandos:

    • >>> import sys, numpy, matplotlib
    • >>> print (sys.version, numpy .__ version__, matplotlib .__ version__)
    • ('2.7.10 (predeterminado, 23 de mayo de 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]', '1.9.2', '1.4.3')
  1. Cree un entorno Anaconda que sea compatible con ArcGIS
    • Vaya al símbolo del sistema de Anaconda (Inicio> Todos los programas (aplicaciones)> Anaconda2 (32 bits), seleccione " Símbolo de Anaconda "), haga clic con el botón derecho, Ejecutar como administrador .
    • Tipo (dependiendo de la versión de ArcGIS, estoy usando ArcGIS 10.4 como ejemplo aquí):
    • "conda create -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pyparsing xlrd xlwt pandas scipy ipython ipython-notebook ipython-qtconsole"
    • Ingrese y para continuar.
    • El comando conda de Anaconda luego configurará un subdirectorio de entorno, por ejemplo: "C: \ Anaconda2 \ envs \ arc104", instalando los paquetes descargados en él.
  2. Probar el entorno virtual
    • En el símbolo del sistema de Anaconda, escriba: activar arc104
    • Tipo: lista de conda . Puede ver la lista de paquetes instalados.
  3. Agregar más paquetes
    • Puede agregar más paquetes usando la instalación de conda , pero asegúrese de especificar los números de versión para estos que no cambiarán la versión del entorno de python o numpy (o ArcGIS ya no podrá usar ese entorno).
    • Agreguemos el módulo de Python Spatial Analysis Library ( pysal ).
    • Escriba el siguiente comando en el símbolo de Anaconda : "conda install -n arc104 python = 2.7.10 numpy = 1.9.2 matplotlib = 1.4.3 pysal"

3) Configure ArcGIS para ver Anaconda y viceversa

  1. Anaconda Python a ArcPy
    • Copie el archivo Desktop10.4.pth en la carpeta de paquetes de sitio del entorno Anaconda:
    • De: C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages \ Desktop10.4.pth
    • Para: C: \ Anaconda2 \ envs \ arc104 \ Lib \ site-packages \ Desktop10.4.pth
  2. Arcpy a Python Anaconda
    • Cree un archivo zconda.pth (ruta) con el contenido "C: \ Anaconda \ envs \ arc104 \ lib \ site-packages" en él.
    • Luego copie zconda.pth a C: \ Python27 \ ArcGIS10.4 \ Lib \ site-packages
  3. Prueba en ArcMap
    • Como usuario habitual, inicie ArcMap, abra la ventana de Python
    • escriba "import pysal"
    • escriba "pysal". Un menú emergente con una lista de funciones proporcionadas por pysal es una buena señal de que la instalación se realizó correctamente.
  4. Pruebas en PyCharm
    • Inicie PyCharm, en Archivo \ Configuración ..., elija Proyecto y luego Intérprete de proyecto
    • Ignore la lista desplegable de Project Interpreter, haga clic en el botón de engranaje para Agregar local y, en el explorador de archivos, elija C: \ Anaconda2 \ envs \ arc104 \ python.exe
    • Para ejecutar su secuencia de comandos, haga clic con el botón derecho en la ventana Proyecto y elija Ejecutar o Depurar
    • Reinicie PyCharm para la consola de Python para usar el entorno arc104.

Flujo de trabajo para configurar Anaconda con ArcGIS Pro 1.3

1) Cree un entorno Anaconda que sea compatible con ArcGIS Pro

  • Copie la carpeta arcgispro-py3 de C: \ Archivos de programa \ ArcGIS \ Pro \ bin \ Python \ envs y péguelo en C: \ Anaconda2 \ envs
  • Cambie el nombre de la carpeta copiada arcgispro-py3 en C: \ Anaconda2 \ envs a arcpro

2) Probar el entorno virtual

  • En el símbolo del sistema de Anaconda, escriba: activar arcpro
  • Tipo: lista de conda . Puedes ver la lista de paquetes instalados

3) Agregar más paquetes

  • Agreguemos el módulo de Python Spatial Analysis Library ( pysal ).
  • Escriba el siguiente comando en el símbolo de Anaconda : "conda install pysal"

4) Configure ArcGIS para ver Anaconda y viceversa

  • Anaconda Python a ArcPy
    • Edite el archivo ArcGISPro.pth (ruta) dentro de "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages".
    • Cambie la ruta relativa de ArcPy a C: \ Archivos de programa \ ArcGIS \ Pro \ Resources \ ArcPy
    • Cambie la ruta relativa de ArcToolBox a C: \ Archivos de programa \ ArcGIS \ Pro \ Resources \ ArcToolBox
  • Arcpy a Python Anaconda
    • Cree un archivo zconda.pth (ruta) con el contenido "C: \ Anaconda2 \ envs \ arcpro \ lib \ site-packages".
    • Luego copie zconda.pth a C: \ Archivos de programa \ ArcGIS \ Pro \ bin \ Python \ envs \ arcgispro-py3 \ lib \ site-packages
  • Prueba en ArcGIS Pro
    • Inicie ArcGIS Pro, abra la ventana de Python
    • escriba "import pysal"
    • escriba "pysal". Un menú emergente con una lista de funciones proporcionadas por pysal es una buena señal de que la instalación se realizó correctamente.
  •  Pruebas en PyCharm
    • Inicie PyCharm, en Archivo \ Configuración ..., elija Proyecto y luego Intérprete de proyecto
    • Ignore la lista desplegable de Project Interpreter, haga clic en el botón de engranaje para Agregar local y, en el explorador de archivos, elija C: \ Anaconda2 \ envs \ arcpro \ python.exe
    • Para ejecutar su secuencia de comandos, haga clic con el botón derecho en la ventana Proyecto y elija Ejecutar o Depurar
    • Reinicie PyCharm para la Consola Python para usar el entorno arcpro.

Referencias

  1. https://goo.gl/pOyLA9
Qiusheng Wu
fuente
Todo esto funciona muy bien, los paquetes de Anaconda están dentro de ArcGIS y viceversa, pero tengo un problema pendiente. Si intento hacer una importación de arcpy y luego arcpy. Describa en una clase de entidad basada en RDBMS (Oracle) en Anaconda, obtengo IOError: ... no existe. Funciona bien en una clase de características de base de datos de archivos, pero aparentemente no se conectará a Oracle (por ejemplo, arcpy.Describe (r'C: \ temp \ password_saved_sde_file.sde \ EDGIS.ElectricDataset \ EDGIS.Anchor ')).
Phil Penn
7

Para solucionar esto, vaya a la carpeta python27 \ Lib \ site-packages, la mía se encuentra en "C: \ Python27 \ ArcGIS10.1 \ Lib \ site-packages" y busque el archivo Desktop10.1.pth.

En mi sistema, el problema se resolvió simplemente copiando el archivo Desktop10.1.pth en "C: \ AppData \ Local \ Continuum \ Anaconda \ Lib \ site-packages".

Si está ejecutando Anaconda de 64 bits, recibirá un error diferente cuando intente importar arcpy porque ArcGIS se ejecuta a 32 bits. Por lo tanto, debe asegurarse de tener instalada la Anaconda de 32 bits en lugar de la de 64 bits para que las cosas coincidan con ArcGIS. Una vez que el archivo se haya copiado y tenga Anaconda de 32 bits, importar arcpy debería funcionar.

WxCZar
fuente
3

Si instaló Arc antes de Anaconda, su IDLE predeterminado, la ventana de Python (en Arc) y la consola de Python siempre extraerán de los módulos instalados por Arc, es decir C:\Python27\ArcGIS <version>\Lib(y / o) Lib\site-packages. Si tiene paquetes instalados con Anaconda que desea usar con la instalación de Python de Arc, necesitará escribir archivos .pth para compartir entre las instalaciones de Python ( lectura ligera ).

Por ejemplo, quería usar el paquete de pandas de mis cosas de Anaconda. Hice un archivo de texto en la carpeta de paquetes de sitio de Arc llamada anaconda.pthcon el contenido de C:\Anaconda\Lib\site-packagespara vincular la instalación de Arc a los paquetes de sitio de Anaconda. Ahora, podría import pandasdentro de Python instalado por Arc sin ImportError. (Si tiene problemas con numpy, cambie el nombre de la numpycarpeta instalada por Arc a _numpy).

Por otro lado, copie y pegue el Desktop<version>.ptharchivo de la carpeta de paquetes de sitio de Arc en su Anaconda (que especifica la ubicación real del paquete arcpy), y cree otro archivo .pth que apunte a su carpeta de paquetes de sitio de Arc en su Anaconda puedes usar los paquetes de Arc de Spyder si lo usas.

MapImbibery
fuente
2

Otro usuario hizo una pregunta similar en github, que podría ser de su interés. Aquí está la esencia de lo que un usuario recomendó para importar datos de autocompletado de arcpy para anaconda:

DamnWidget comentó el 26 de febrero https://github.com/DamnWidget/anaconda/issues/284

Abra un PowerShell o CMD.exe y vaya a su instalación de anaconda en la carpeta Paquetes en su Sublime Text 3% APPDATA%. CD en la carpeta anaconda_lib e inicie un intérprete interactivo de Python en esa ruta.

Copie y pegue lo siguiente:

import jedi

print(jedi.Script('import arcpy; arcpy.').completions())

Luego (al menos para mí) devolvió un montón de cosas en la ventana de cmd, y parecía haber funcionado. Volví a abrir Sublime Text y muestra el autocompletado para funciones arcpy.

Mi problema es que tarda más de 5 segundos en cargarlos, parece que nunca se mantiene cargado el arcpy en la memoria durante más de unos pocos segundos. Pero ese es un tema diferente, creo ...

clavicus
fuente
1

Simplemente debe instalar la versión de 32 bits de Anaconda.

mmann1123
fuente