Creé un módulo pequeño (y relativamente popular) que se activa y busca ArcGIS en su PC. Una vez que encuentre, agrega las rutas correctas al entorno para que pueda importar arcpy. El uso es así:
try:
import archook #The module which locates arcgis
archook.get_arcpy()
import arcpy
except ImportError:
# do whatever you do if arcpy isnt there.
El módulo está alojado en github aquí:
https://github.com/JamesRamm/archook
Es muy simple y estoy seguro de que puede hacerse más robusto, pero hace el trabajo. Está disponible en pypi:pip install archook
Tiene algunas ventajas sobre el método original más 'manual' (detallado a continuación):
- No necesita configurar cada entorno de Python por separado ... solo importe el módulo y listo.
- No edita / crea claves de registro o variables de entorno permanentes, por lo que no hay posibilidad de estropear ninguna configuración existente de python / arcgis.
- No necesita saber nada sobre las rutas a varias carpetas / archivos, o incluso qué versión de arcgis ha instalado. El módulo lo encontrará todo por ti.
- No se necesita autenticación de administrador
- No es específico con anaconda: funcionará con cualquier instalación de Python
He dejado la respuesta original a continuación, pero esta solución es (IMO) 100% mejor.
Respuesta 2014
Ok, entonces esta respuesta funciona para la distribución Python Anaconda de 64 bits con ArcGIS 10.1 64 bits en Windows 7 / Windows Server. Algunos de (o todos) los consejos que se dan a continuación pueden aplicarse a cualquier otra distribución de Windows de Python. Primero, instale anaconda, debe ir al directorio C: \ Anaconda. Marque la casilla 'hacer que Python sea el sistema predeterminado' Puede dar una advertencia de que hay otro python instalado, pero continúe. Luego:
Configurar rutas y variables de entorno
Lo primero que debe hacer es copiar el archivo DTBGGP64.pth al nuevo directorio de distribución ( C: \ Anaconda ) desde C: \ Python27 \ ArcGISx6410.1 \ Lib \ site-packages . La denominación es arbitraria, pero debe tener la extensión .pth. Esto le permitirá importar ArcPy cuando utilice la nueva distribución.
Nota: La ubicación correcta del archivo DTBGGP64.pth debe estar en el directorio de paquetes del sitio (por ejemplo, C: \ Anaconda \ Libs \ site-packages ). He encontrado que con algunas versiones anteriores de Anaconda, funciona si se encuentra en el directorio de nivel superior.
Luego, las variables de entorno deben ser verificadas: en la ruta del variable, la ruta existente al directorio de Python debe reemplazarse con la nueva ruta. (por ejemplo, C: \ Anaconda; C: \ Anaconda \ Scripts; ) Esto le dirá a Windows dónde está el directorio predeterminado de Python. Asegúrese de que la variable de usuario PYTHONPATH también sea correcta. Esto debería apuntar a cualquier biblioteca que desee usar que no esté descrita por archivos .pth o que esté instalada en paquetes de sitio . Es decir, estos pueden ser sus propios paquetes de desarrollo o paquetes como mapnik que tienen una ubicación de instalación diferente.
Comprobar la configuración del registro
En algunas máquinas, lo anterior puede ser suficiente para garantizar que pueda usar arcpy desde la nueva python y que python se pueda usar dentro de ArcGIS. En otras máquinas, es posible que deba verificar las claves de registro. Las siguientes claves de registro tienen configuraciones de python:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 2.7 \ PythonPath
Debe haber una clave y su 'valor debe ser C: \ Anaconda \ Lib; C: \ Anaconda \ DLLs
(o las carpetas correspondientes para su instalación de Python)
HKEY_LOCAL_MACHINE \ SOFTWARE \ Python \ PythonCore \ 2.7 \ InstallPath
La clave debe ser C: \ Anaconda
Es posible que tenga otras versiones de Python instaladas ... en cuyo caso cambie el número de versión en las rutas anteriores
HKEY_CLASSES_ROOT \ Python.CompiledFile \ DefaultIcon
Esta es la ubicación del archivo .ico que se utilizará para los archivos .pyc
HKEY_CLASSES_ROOT \ Python.CompiledFile \ shell \ open \ command
Este es el comando que debe emitirse al abrir un archivo .pyc desde el shell. Debe cambiar la python.exe
ruta a la ubicación de la versión de Python que desee.
HKEY_CLASSES_ROOT \ Python.File
Las claves aquí son las mismas que las de Python.CompiledFile, excepto que se aplican a un archivo .py. Nuevamente, haga los cambios relevantes. Puede tener una clave adicional para 'Editar con IDLE' o 'Editar con Pythonwin'. Nuevamente, realice los cambios relevantes para que las rutas en estas claves apunten a la versión de Python deseada.
HKEY_CLASSES_ROOT \ Python.NoConFile
Estos son los mismos que para Python.File, pero deben apuntar al pythonw.exe
programa cuando corresponda.
HKEY_LOCAL_MACHINE \ SOFTWARE \ ESRI \ Python10.1
La clave PythonDir apunta a la instalación de Python para usar dentro de ArcMap, etc. Puede desear que esto permanezca como la instalación de Python instalada por ESRI, o apunte a su nueva instalación. Se puede requerir otros cambios si apunta ArcMap para la nueva instalación de Python. No puede haber problemas con las versiones de los paquetes (por ejemplo numpy) instalados por la nueva distribución. No he encontrado ninguno.
Para la mayoría de mi trabajo, esto es irrelevante, ya que normalmente quiero usar Python solo y ocasionalmente tener acceso a arcpy. Rara vez deseo usar Python desde arcmap ... Por lo tanto, he realizado pocas pruebas de este paso final, pero parece funcionar para todo lo que he intentado hasta ahora.
Me imagino que el proceso sería similar para instalar Python (x, y) etc.
Otras notas
El contenido del archivo .pth es una lista de rutas que apuntan a las siguientes carpetas en su instalación de ArcGIS: bin64, arcpy, ArcToolbox \ Scripts Por ejemplo, mi archivo .pth contiene lo siguiente:
C:\Program Files (x86)\ArcGIS\Desktop10.2\bin64
C:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.2\ArcToolbox\Scripts
Mi solución es configurar un script de inicio que establezca la ruta en función del entorno de Python que está utilizando. Este método tiene la ventaja (enorme) de que no necesita acceso de administrador para escribir archivos .pth en instalaciones de Python. Este script está configurado para usar Anaconda y ArcGIS / arcpy de 32 bits y 64 bits.
fuente
En caso de que alguien esté tratando de hacer esto usando ArcGIS Pro (es decir, con Python 3 en lugar de Python 2):
Yo uso spyder dentro del paquete anaconda. La forma en que conseguí que esto funcionara fue yendo a Herramientas> Python Interpreter en Spyder, luego señalando Spyder al archivo propy.bat actualmente ubicado en C: \ Archivos de programa \ ArcGIS \ Pro \ bin \ Python \ Scripts \ propy.bat.
Esto activa la versión correcta de Python en Spyder y le permite importar arcpy.
fuente
Utilizo el siguiente código para configurar un entorno virtual separado , que contiene arcpy y sus dependencias:
fuente