Skip To Content

El tiempo de ejecución de Python 3 para ArcGIS Server en Linux

ArcGIS Server ofrece la opción de utilizar un tiempo de ejecución de Python 3 para secuencias de comandos de ArcPy de la línea de comandos. Las herramientas de selección se pueden ejecutar con un tiempo de ejecución de Python 3.5 que se instala de forma independiente de ArcGIS Server.

Legado:

En versiones anteriores de ArcGIS Server en Linux, las secuencias de comandos de Python solo se podían ejecutar en un shell de Linux utilizando el tiempo de ejecución de Python 2.7 que se incluía con ArcGIS Server. Esta experiencia tenía limitaciones en cuanto al uso de bibliotecas de terceros y al uso de rutas.

Introducción

Puede empezar utilizando el tiempo de ejecución de Python 3 en ArcGIS Server para Linux utilizando conda para descargar e instalar el paquete de arcgis-server-<arcgis version number>-py3.

Python tiene un rico ecosistema de paquetes de códigos preexistentes que se pueden aprovechar en ArcGIS. No obstante, gestionar qué paquetes están instalados en un sistema puede ser una tarea compleja y que lleve mucho tiempo, sobre todo cuando se trabaja con varios proyectos a la vez o cuando se intenta compartir código con otros usuarios.

Para aprovechar esta versatilidad, la comunidad de Python ha diseñado métodos para crear proyectos en varias versiones de Python, trivializando el proceso de instalar prácticamente todos los paquetes de Python que están disponibles públicamente. El gestor de paquetes de Python más popular y utilizado es conda. La integración de conda con ArcGIS Server le permite utilizar la funcionalidad en el ecosistema de Python de paquetes de código abierto y de terceros desde ArcGIS Server. Le permite instalar, ejecutar y actualizar rápidamente paquetes y sus dependencias para utilizarlos en su código de Python.

Si todavía no tiene conda, puede descargarlo aquí.

Para acceder a la funcionalidad de Python de ArcGIS, incluido ArcPy, el paquete de arcgis-server-<arcgis version number>-py3 se puede instalar directamente desde conda. Desde un entorno de conda, utilice el comando siguiente:

conda install -c esri arcgis-server-<arcgis version number>-py3

La instalación arcgis-server-<arcgis version number>-py3 del paquete agregará ArcPy, incluidas las herramientas de geoprocesamiento compatibles y todos los requisitos de terceros.

Migración

El modo de utilizar el tiempo de ejecución de Python 3 con ArcGIS Server es diferente a ArcGIS Server de Python 2 y a otros productos de ArcGIS, incluido ArcGIS Desktop. Existen dos diferencias principales: el cambio de Python de 2 a 3 y diferencias en el propio arcpy.

Cambios en las funciones de ArcPy

Muchas herramientas de geoprocesamiento seguirán estando disponibles en el tiempo de ejecución de Python 3 para ArcGIS Server; sin embargo, algunas no lo estarán. Las herramientas no incluidas son, entre otras, las de las cajas de herramientas Parcel Fabric, Schematics y Tracking Analyst. Algunas herramientas de otras cajas de herramientas tampoco están disponibles. Para obtener una lista completa de las herramientas de geoprocesamiento compatibles, consulte el archivo readme que se incluye en el paquete de arcgis-server-<arcgis version number>-py3.

El módulo arcpy.mapping se ha eliminado y se ha reemplazado con un módulo arcpy.mp en ArcGIS Pro. El módulo arcpy.na también incluye cambios, muchos de ellos relacionados con el paso de arcpy.mapping a arcpy.mp.

Cambio de versión de Python

El tiempo de ejecución de ArcGIS Server utiliza Python 3.5. Esto supone un cambio importante con respecto a otros productos de ArcGIS que han usado y siguen usando versiones de la línea de Python 2. La línea de versiones de Python 3 es incompatible con la línea de Python 2. Aunque buena parte del lenguaje es esencialmente igual, muchos detalles importantes han cambiado bastante, incluidos el funcionamiento de las cadenas de caracteres y los diccionarios y la organización de la biblioteca estándar.

Python 3 ha estado en desarrollo activo durante varios años en los que ha coexistido con Python 2 mientras la comunidad de Python se actualizaba. En este momento, la mayoría de las bibliotecas clave de terceros se han migrado a Python 3 y en la comunidad de Python existe un amplio consenso sobre el hecho de que los nuevos proyectos de desarrollo se realizarán en Python 3.

Es esencial decidir si se va a actualizar el código de Python para que funcione en las versiones de Python 2 y 3. Si va a realizar una conversión unidireccional del código de Python 2 a Python 3, hay una utilidad de línea de comando denominada 2to3 que se puede usar para automatizar buena parte del proceso. Esta utilidad está disponible con Python 2 y 3. Es importante recordar que 2to3, aun siendo una excelente herramienta, no es una solución completa (a veces se valora como una solución completa al 95%) y puede ser necesario realizar cambios adicionales.

Una excelente referencia sobre el cambio a Python 3 y las estrategias de migración se puede encontrar en la obra Porting to Python 3 de Lennart Regebro, en el sitio web http://python3porting.com/. Es posible escribir secuencias de comandos que se puedan ejecutar en Python 2 y Python 3.

Recuerde que las secuencias de comandos de Python más sencillas pueden no requerir cambios y probablemente funcionarán bien sin modificaciones.