30 votos

¿Cómo hacer que Arcpy trabaje con Anaconda?

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 la ruta, DTBGGP64.pth en C:\Python27\ArcGIS10.2\Lib\site-packages .

¿Alguien se ha enfrentado a un problema similar?

Me pregunto si hay una solución incluyendo un archivo de ruta que le diga a Anaconda dónde está instalado Arcpy. Intenté 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ó para C:\Anaconda\Lib\site-packages (es decir, si es aquí donde se guardan todos los paquetes) pero me da 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 corriendo conda 3.7-py27 en una plataforma de Windows 7 (64bit). Anaconda está instalado en C:\Anaconda y ArcMap está instalado en C:\ArcGIS\Desktop10.2 . ¿Hay alguna solución alternativa para que Arcpy trabaje con Anaconda? Sólo quiero ser capaz de ejecutar mis guiones desde Powershell.

0 votos

Solo para estar seguros - cuando escribes 'python' en un prompt de cmd - ¿que versión/instalación hace eco? (es decir, arcgis o anaconda?) - oops acaba de ver esto es un poco de fecha. probablemente resuelto por ahora.

0 votos

He oído de un desarrollador en Esri UC que Anacondas será construido en ArcGIS 10.5. Yo recomendaría sólo la instalación de los módulos que necesita de lo contrario podría ser un lío.

0 votos

Parece que este ^ es el caso de la Requisitos del sistema ArcGIS 10.5

41voto

Este tutorial muestra cómo configurar el entorno conda para trabajar con ArcGIS 10.4 y ArcGIS Pro 1.3.

Flujo de trabajo para configurar Anaconda con ArcGIS 10.4

  • Instalar 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 el Python de ArcGIS para que conozca el contenido apropiado de Anaconda.

1) Instalar Anaconda para todos los usuarios

  1. Ir a http://continuum.io/downloads
  2. Descargue el 32 bits versión de Anaconda (Python 2.7)
  3. En los diálogos de instalación:
    • Seleccione la instalación para Todos los usuarios
    • Instalar en una carpeta por defecto ( C:\Anaconda2 )
    • IMPORTANTE : Para evitar que se rompa ArcGIS (u otro software), desmarque las casillas (a) hacer de Anaconda el Python por defecto y (b) añadir el Python de Anaconda al PATH.
  4. Vaya a Inicio > Todos los programas(apps) > Anaconda2(32-bit) > Anaconda Prompt. Haz clic con el botón derecho, ejecuta como administrador

2) Configurar un entorno Anaconda para su uso con ArcGIS

  1. Encuentre las versiones de numpy y matplotlib que utiliza ArcGIS.

Abrir ArcMap y su ventana de Python, e introduce estos comandos:

  • >>> importar sys, numpy, matplotlib
  • >>> print(sys.version, numpy.__version__, matplotlib.__version__)
  • ('2.7.10 (por defecto, 23 de mayo de 2015, 09:40:32) [MSC v.1500 32 bits (Intel)]', '1.9.2', '1.4.3')
  1. Crear un entorno Anaconda compatible con ArcGIS
    • Accede al símbolo del sistema de Anaconda (Inicio > Todos los programas(apps) > Anaconda2(32-bit), elige " Anaconda Prompt "), 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"
    • Entre en y para proceder.
    • El comando conda de Anaconda creará entonces un subdirectorio de entorno, por ejemplo: " C:\Anaconda2\envs\arc104 ", instalando en él los paquetes descargados.
  2. Probar el entorno virtual
    • En la ventana de comandos de Anaconda, escriba: activar arc104
    • Tipo: lista de conda . Puede ver la lista de paquetes instalados.
  3. Añadir más paquetes
    • Puede añadir más paquetes utilizando instalación de conda pero asegúrese de especificar números de versión para éstos que no cambien la versión de python o numpy del entorno (o ArcGIS no podrá seguir utilizando ese entorno).
    • Añadamos la biblioteca de análisis espacial de Python ( pysal ).
    • Escriba el siguiente comando en el Anaconda Prompt : "conda install -n arc104 python=2.7.10 numpy=1.9.2 matplotlib=1.4.3 pysal"

3) Configurar ArcGIS para ver Anaconda y viceversa

  1. Anaconda Python a ArcPy
    • Copiar el Escritorio10.4.pth a la carpeta de paquetes de sitio del entorno de Anaconda:
    • De: C:\Python27\ArcGIS10.4\Lib\site -paquetes \Desktop10.4.pth
    • Para: C:\Anaconda2\envs\arc104\Lib\site -paquetes \Desktop10.4.pth
  2. Arcpy a Anaconda Python
    • Crear un zconda.pth (ruta) con el contenido " C:\Anaconda\envs\arc104\lib\site -paquetes" en él.
    • A continuación, copie zconda.pth en C:\Python27\ArcGIS10.4\Lib\site -paquetes
  3. Pruebas en ArcMap
    • Como usuario habitual, inicie ArcMap, abra la ventana de Python
    • tipo "importar pysal"
    • escriba "pysal". Un menú emergente con una lista de funciones proporcionadas por pysal es una buena señal de que la instalación ha tenido éxito.
  4. Pruebas en PyCharm
    • Iniciar PyCharm, en Archivo \Settings , seleccione Proyecto y luego Intérprete de Proyectos
    • Ignora la lista desplegable para el intérprete del proyecto, y haz clic en el botón de engranaje para añadir local, y en el explorador de archivos elige C:\Anaconda2\envs\arc104\python.exe
    • Para ejecutar tu script, haz clic con el botón derecho del ratón en la ventana del proyecto y elige Ejecutar o Depurar
    • Reinicie PyCharm para que la consola de Python utilice el entorno arc104.

Flujo de trabajo para configurar Anaconda con ArcGIS Pro 1.3

1) Crear un entorno Anaconda compatible con ArcGIS Pro

  • Copiar la carpeta arcgispro-py3 de C:\Program Archivos \ArcGIS\Pro\bin\Python\envs y pegar en C:\Anaconda2\envs
  • Cambiar el nombre de la carpeta copiada arcgispro-py3 en C:\Anaconda2\envs a arcpro

2) Probar el entorno virtual

  • En la ventana de comandos de Anaconda, escriba: activar arcpro
  • Tipo: lista de conda . Puede ver la lista de paquetes instalados

3) Añadir más paquetes

  • Añadamos la biblioteca de análisis espacial de Python ( pysal ).
  • Escriba el siguiente comando en el Anaconda Prompt : "conda install pysal"

4) Configurar ArcGIS para ver Anaconda y viceversa

  • Anaconda Python a ArcPy
    • Editar el ArcGISPro.pth (ruta) dentro de " C:\Anaconda2\envs\arcpro\lib\site -paquetes".
    • Cambia el relativo ArcPy camino a C:\Program Archivos \ArcGIS\Pro\Resources\ArcPy
    • Cambia el relativo ArcToolBox camino a C:\Program Archivos \ArcGIS\Pro\Resources\ArcToolBox
  • Arcpy a Anaconda Python
    • Crear un zconda.pth (ruta) con el contenido " C:\Anaconda2\envs\arcpro\lib\site -paquetes" en él.
    • A continuación, copie zconda.pth en C:\Program Archivos \ArcGIS\Pro\bin\Python\envs\arcgispro -py3 \lib\site -paquetes
  • Pruebas en ArcGIS Pro
    • Inicie ArcGIS Pro, abra la ventana de Python
    • tipo "importar pysal"
    • escribe "pysal". Un menú emergente con una lista de funciones proporcionadas por pysal es una buena señal de que la instalación ha tenido éxito.
  •   Pruebas en PyCharm
    • Iniciar PyCharm, en Archivo \Settings , seleccione Proyecto y luego Intérprete de Proyectos
    • Ignora la lista desplegable para el intérprete del proyecto, y haz clic en el botón de engranaje para añadir local, y en el explorador de archivos elige C:\Anaconda2\envs\arcpro\python.exe
    • Para ejecutar tu script, haz clic con el botón derecho del ratón en la ventana del proyecto y elige Ejecutar o Depurar
    • Reinicie PyCharm para que la consola de Python utilice el entorno arcpro.

Referencias

  1. https://gisday.wordpress.com/2016/07/18/setting-up-anaconda-pysal-with-arcgis-python-environment/

0 votos

Todo esto funciona muy bien, los paquetes de Anaconda están dentro de ArcGIS y viceversa, pero tengo un problema restante. Si trato de hacer una importación arcpy y luego arcpy.Describe en un RDBMS(Oracle)-sourced featureclass en Anaconda entonces me IOError:...no existe. Funciona bien en una featureclass de base de datos de archivos, pero aparentemente no se conecta a Oracle (por ejemplo, arcpy.Describe(r' C:\temp\password_saved_sde_file.sde\EDGIS.E lectricDataset \EDGIS .Anchor')).

0 votos

Encontré este error cuando intenté instalar los paquetes en la versión 10.8.1 de Anaconda for ArcGIS Desktop. ¿Puede alguien ayudarme a encontrar el origen del error? PackagesNotFoundError: Los siguientes paquetes no están disponibles en los canales actuales: - ipython-notebook - ipython-qtconsole - scipy=0.17

13voto

Paul Puntos 555

Está utilizando una versión de 64 bits de Python en su instalación de Anaconda y el Python de ArcMap es de 32 bits. Tendrá que instalar alguna compilación de ArcGIS de 64 bits (ya sea Background Geoprocessing de 64 bits o ArcGIS for Server) y apuntar a eso en su lugar, o instalar una instancia de Anaconda de 32 bits en su lugar e intentar de nuevo. Véase la página de descargas y obtener el instalador de 32 bits.

8voto

Aquarius Power Puntos 814

Para ello, navegue hasta el sitio web de python27 \Lib\site -carpeta de paquetes, la mía se encontraba en " C:\Python27\ArcGIS10.1\Lib\site -packages", y encontrar 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 -paquetes".

Si está ejecutando Anaconda 64 bits, obtendrá un error diferente cuando intente importar arcpy porque ArcGIS corre 32 bits. Por lo tanto, tienes que asegurarte de que tienes instalado Anaconda 32 bits en lugar de 64 bits para que las cosas coincidan con ArcGIS. Una vez que el archivo es copiado y usted tiene Anaconda 32 bits, importar arcpy debería funcionar.

3voto

mkamowski Puntos 329

Si instalaste Arc antes que Anaconda, tu IDLE por defecto, la ventana de Python (en Arc), y la consola de Python siempre tirarán de tus módulos instalados en Arc, es decir. C:\Python27\ArcGIS <version>\Lib (y/o) Lib\site-packages . Si tienes paquetes instalados con Anaconda que quieres usar con la instalación de Arc de Python necesitarás escribir archivos .pth para poder compartir entre instalaciones de Python ( lectura ligera ).

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

Por otro lado, copie y pegue el Desktop<version>.pth de la carpeta Arc site-packages en tu Anaconda (que especifica la ubicación real del paquete arcpy), y haz otro archivo .pth que apunte a tu carpeta Arc site-packages en tu Anaconda para que puedas usar los paquetes de Arc desde Spyder si lo usas.

2voto

rjv Puntos 28

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

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

Abre un PowerShell o CMD.exe y ve a tu instalación de anaconda bajo la carpeta Packages en tu Sublime Text 3 %APPDATA%. CD en la carpeta anaconda_lib e inicia un intérprete interactivo de Python en esa ruta.

Copie y pegue lo siguiente:

import jedi

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

Entonces (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 me saca el autocompletado de las funciones de arcpy.

Mi problema es que tarda más de 5 segundos en cargarlos, parece que nunca mantiene arcpy cargado en memoria más de unos segundos. Pero eso es un problema diferente creo...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X