Que el desarrollo GIS está cada vez más demandado es una realidad hoy día. De todos los posibles lenguajes en los que se puede desarrollar Python está entre los más destacados, y como no puede ser de otra manera, ESRI es consciente de ello y tiene un módulo propio, ArcPy, que permite acceder a todas las funcionalidad de ArcGIS.
Para desarrollar con este módulo se pueden utilizar desde la propia ventana de Python de ArcGIS hasta diferentes Entornos de Desarrollo Integrados (IDE).
En ocasiones el hacer que una IDE pueda trabajar con ArcPy puede ser un verdadero quebradero de cabeza, como puede pasar con una de las IDE más comunes para el desarrollo de Python: PyScripter.
PyScripter es un entorno de desarrollo gratuito que permite programar en Python dentro de Windows, siendo un entorno limpio y con zonas dedicadas al intérprete de Python, mensajes, salidas, variables, «debagueo» con parada, texto predictivo, etc.
En la entrada de hoy pretendemos mostrar cómo configurar esta IDE para que pueda consumir el módulo de Arcpy de ArcGIS. Si al abrir la PyScripter e importar Arcpy y ejecutar no da error esta entrada no es para ti, pero si eres uno de los desafortunados que al instalar PyScripter no te coge las variables de entorno como debe, este post puede darte algo de luz.
Lo primero será dar de alta el módulo de Arcpy en las opciones del IDE PyScripter, pinchando en Herramientas > Opciones > Opciones de IDE, en el nuevo menú escribiremos “, arcpy”.
En la mayoría de los casos esto suele ser suficiente para que al importar arcpy no nos dé problemas. Pero puede darse el caso de que siga dando el error de “ImportError: No module named arcpy”.
Esto suele ser porque las variables de entorno no están bien definidas y PyScripter está arrancado de la versión de Python que no tiene definido ArcGIS.
Para solventar esto iremos, en el PC o portátil, a Inicio > Panel de control > Sistema > Configuración Avanzada y en el nuevo menú que se abre a Opciones Avanzadas > Variables de entorno.
Ahora definiremos las variables de entorno para los ficheros de Python, pincharemos en nueva y escribiremos en la ventana que se activa:
Nombre de la variable: PYTHONPATH
Variable de entorno:
C:\Python27\ArcGIS10.2\Lib\site-packages;C:\program files (x86)\arcgis\desktop10.2\arcpy;C:\Windows\system32\python27.zip;C:\Program Files (x86)\Python27\Lib;C:\Program Files (x86)\Python27\DLLs;C:\Program Files (x86)\Python27\Lib\lib-tk;C:\Windows\system32;C:\Program Files (x86)\ArcGIS\Desktop10.2\bin;C:\Program Files (x86)\Python27;C:\Program Files (x86)\Python27\Lib\site-packages;C:\Program Files (x86)\Python27\Lib\site-packages\win32;C:\Program Files (x86)\Python27\Lib\site-packages\win32\Lib;C:\Program Files (x86)\Python27\Lib\site-packages\Pythonwin
Hay que tener especial cuidado en separar cada variable con “;” puesto que de no hacerlo así no las importará. En ocasiones las variables pueden estar definidas ya en la variable Path, tan solo tendríamos que añadir, de la lista de arriba, las que faltan.
Ahora si tiene definido el Python en donde tenemos instalado ArcGIS.
Si abrimos de nuevo PyScripter ya se debería ver Arcpy al buscar el módulo cuando se quiere importar, y al escribir un geoproceso ya si nos permite ver las explicaciones del mismo.
Al final ya se tendrá listo el PyScripter para escribir código de Python para ArcGIS, algo mucho más cómodo y limpio que la ventana de Python de ArcMap.
Hola Ricardo
Muchas gracias por tu post. Tengo este problema para configurar ArcPy en Pyscripter. Tu post es lo más cerca que estoy de la solución.
Intengo seguir los pasos pero no encuentro los siguientes archivos para poner en la variable de entorno:
C:\Windows\system32\python27.zip
C:\Program Files (x86)\Python27\Lib\site-packages\win32
C:\Program Files (x86)\Python27\Lib\site-packages\win32\Lib
C:\Program Files (x86)\Python27\Lib\site-packages\Pythonwin
Me puedes ayudar? Tengo instalados ArcGIS 10.4, Python 2.7 y PyScripter 3.0.0.0
Saludos
Pablo
Buenas Pablo,
Mira en donde tienes instalado Python 27, posiblemente esté dentro de la instalación de ArcGIS 10.4 y modifica esas rutas.
También puedes instalar el Python 27 por fuera de ArcGIS y generar esos path.
Nos cuentas si se te soluciona, un saludo Ricardo.
Saludos desde Perú, tengo una pregunta quiero usar el pyscripter como IDE y tengo instalado el Arcgis Desktop 10.6.1 y de acuerdo a lo que conozco debería usar la versión de pyscripter 2.x de acuerdo a la versión de Python que usa el Arcgis en este caso 2.7, pero observo que en la pagina oficial para descargar el pyscripter no hallo la versión 2.7,podría descargar la versión 2.6 de pyscripter y se enlazaría el Python del Arcgis con el pyscripter? o como tendría que proceder?…gracias de antemano por la posible respuesta.
Buenas no importa tanto la versión de pyScripter, de hecho yo trabajo con la 3.6.2.1 para 32 bits.
La cosa de que puedas desarrollar o no con esta IDE viene más en donde esté apuntado la instalación del Python 2.7 y las variables de entorno.
Un saludo y gracias por el comentario, Ricardo.
Gracias por la respuesta estimado ricardo!
Hola. He intentado el proceso que señalas para usar arcpy desde PyScripter y no funciona. Tengo instalado el Visual Studio y el ArcGis 10.8. Me parece que cada programa ha instalado su versión de python.
Cuando miro en Python Path desde PyScripter me direcciona a
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64….
¿Alguna idea para solucionar esto?
Gracias por adelantado
Buenos días Jose, lo primero gracias por seguir nuestro Blog y por tus comentarios.
Las versiones de Python para ArcGIS Desktop son las 2.7, y para ArcGIS 10.8 es la versión 2.7.18 y NumPy 1.9.3
Si te fijas, te está direccionando a la versión 3.7 de Python, Busca la versión 2.7 que te instala ArcGIS y crea una línea con ese path en el Python Path de PyScripter.
Espero que se soluciona, un saludo, Ricardo.
GRacias Ricardo. He hecho esto y funciona, pero NO consigo que las líneas que añado a PythonPath se mantengan una vez cierro el programa. NO sé si me explico, cuando cierro PyScripter y lo vuelvo a abrir, todo lo que he añadido anteriormente a python path se ha borrado.