ArcGIS Server incluye Python 2.7 para Windows 64 bits. En ArcGIS Enterprise 10.5 y versiones posteriores, se incluye el entorno de conda basado en Python 3 con ArcGIS Server.
La instalación de Python ArcGIS Server incluye paquetes como numpy y matplotlib. Sin embargo, para instalar paquetes de Python personalizados adicionales, siga los siguientes pasos.
Servicios publicados desde ArcGIS Pro
Al igual que ArcGIS Pro, ArcGIS Server usa conda para administrar entornos de Python. A partir de ArcGIS Server 10.7.1, puede especificar un entorno de Python para todos los servicios de geoprocesamiento. A partir de ArcGIS Server 10.8.1, puede especificar un entorno de Python para un único servicio de geoprocesamiento.
Los siguientes pasos están destinados para geoprocesar servicios publicados desde ArcGIS Pro o utilizando arcpy. Para obtener más información sobre el entorno de Python en ArcGIS Pro, consulte Python en ArcGIS Pro. Le recomendamos que clone el entorno de Python predeterminado para realizar actualizaciones. Tan solo se puede activar un entorno de Python a la vez para ArcGIS Server.
Para obtener más información sobre cómo usar y trabajar con conda, consulte Introducción a conda.
Nota:
Si utiliza un entorno clonado creado antes de aplicar el parche ArcGIS Server log4j, active el entorno ejecutando conda activate your_environment y ejecute conda update saspy para solucionar la vulnerabilidad de seguridad del log4j usado con la versión anterior de saspy en el entorno clonado. Si el parche ya está instalado, incluya la marca --pinned cuando clone el entorno predeterminado, que se detalla en las instrucciones siguientes. Tras activar el entorno clonado, ejecute conda update saspy para asegurarse de que la vulnerabilidad de seguridad de log4j no exista en el entorno clonado.
Especificar un entorno de Python para todos los servicios de geoprocesamiento
Para implementar paquetes de Python de terceros con ArcGIS Server, aplique los siguientes pasos para cada equipo en su sitio:
- Inicie sesión en su equipo de ArcGIS Server con la cuenta de ArcGIS Server y abra la ventana de comando como administrador.
- Cambie el directorio a <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
- Clone el entorno de Python predeterminado del servidor con un nuevo nombre de entorno, por ejemplo newenvname, en el directorio de entorno de Python de la instalación de ArcGIS Server con el comando conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts. Sustituya el prefijo por el directorio de instalación y el nombre del nuevo entorno.
- Para activar el entorno clonado, ejecute proswap newenvname.
- Instale los paquetes de Python de terceros ejecutando conda install. Utilice pip install solamente si conda install no está disponible.
- Reinicie el servicio de ArcGIS Server en la pestaña Servicios del Administrador de tareas de Windows o Servicios de Windows. Tardará unos minutos hasta que todos los servicios vuelvan a estar en línea.
- Repita los pasos del 1 al 6 en cada equipo de su sitio de ArcGIS Server, en caso necesario.
Para agregar más paquetes al entorno de conda existente, siga estos pasos:
- Inicie sesión en su equipo de ArcGIS Server. Es posible que necesite una cuenta con privilegios administrativos.
- Desde el menú de inicio, abra la ventana de comando de Python 3. Puede que esté en la carpeta ArcGIS Server, en función de su sistema operativo.
- Ejecute conda install para los paquetes que se deben implementar. Utilice pip install solamente si conda install no está disponible.
- Reinicie el servicio de geoprocesamiento en ArcGIS Server Manager.
- Si lo desea, reinicie el servicio de ArcGIS Server en la pestaña Servicios del Administrador de tareas de Windows. Todos los servicios volverán a estar en línea en pocos minutos.
- Repita los pasos del 1 al 5 en cada equipo de su sitio de ArcGIS Server, en caso necesario.
Especificar un entorno de Python para un único servicio de geoprocesamiento
Clone el entorno de Python predeterminado del servidor, instale paquetes de Python de terceros y edite las propiedades del servicio de su servicio de geoprocesamiento siguiendo estos pasos:
- Inicie sesión en su equipo de ArcGIS Server y abra la ventana de comando de Python 3 desde el menú de inicio. Se recomienda ejecutar el símbolo del sistema como administrador; de lo contrario, es posible que no pueda clonar el entorno en ciertos directorios.
- Clone el entorno de Python predeterminado del servidor con un nuevo nombre de entorno, por ejemplo newenvname, en el directorio de entorno de Python de la instalación de ArcGIS Server con el comando conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts. Sustituya el prefijo por el directorio de instalación y el nombre del nuevo entorno. Para clonar el entorno en cualquier otro directorio fuera del directorio de instalación de ArcGIS Server, ejecute conda create --clone arcgispro-py3 --prefix "<fullpath>\outsideenvname" --pinned --no-shortcuts.
- Active el nuevo entorno en la ventana de comando con activate newenvname. Si está utilizando un directorio fuera del directorio del entorno ArcGIS Server de instalación de Python, proporcione la ruta completa a su entorno clonado con activate <fullpath>\outsideenvname.
- Instale sus paquetes de Python con conda install packagename=version. Opcionalmente, aunque es una práctica recomendada, puede alinear la versión del paquete que utilizó en ArcGIS Pro durante el proceso de publicación y la versión del paquete instalada en el servidor.
- Una vez que se instalen todos los paquetes, vaya al directorio del administrador de ArcGIS Server. En Recursos en la parte inferior de la página, vaya a servicios.
- Seleccione el servicio de geoprocesamiento para el que desea especificar un entorno de Python.
- Vaya a Operaciones compatibles en la parte inferior de la página y haga clic en editar.
- En el servicio JSON, agregue el par clave-valor "condaEnvironmentPath": "newenvname" a las propiedades del servicio cuando su entorno clonado esté en el directorio del entorno ArcGIS Server de instalación de Python. Si está utilizando un directorio fuera del directorio del entorno ArcGIS Server de instalación de Python, proporcione la ruta completa a su entorno clonado.
Simplified service properties with a cloned Python environment in the ArcGIS Server installation's Python environment directory.
{ "serviceName": "gvonly", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p20\\gvonly.tbx", "condaEnvironmentPath": "newenvname", "showMessages": "INFO" }, "portalProperties": { "isHosted": false, "portalItems": [{ "itemID": "4921223df97744a593d0b776666b9da9", "type": "GPServer" }] }, "extensions": [{ "typeName": "WPSServer", "properties": { "serviceType": "", "name": "" } }], "frameworkProperties": {}, "datasets": [] }
- Haga clic en el botón Guardar ediciones para guardar los cambios.
- Su servicio se reinicia automáticamente.
Servicios publicados desde ArcGIS Desktop
Los siguientes pasos son para servicios de geoprocesamiento publicados desde ArcMap y el módulo de arcpy basado en Python 2.7. Siga estos pasos en cada equipo de su sitio de ArcGIS Server. El paquete se instalará en el Python 2.7 predeterminado del servidor y se aplicará a todos los servicios publicados desde ArcGIS Desktop.
- Descargue la versión de Windows de 64 bits del paquete de terceros que desea instalar.
- Haga doble clic en el archivo .msi o .exe para instalar el paquete.
Los paquetes personalizados suelen estar instalados en el directorio de C:\Python27\ArcGISx6410.8\lib\site-packages.
Probar paquetes de Python personalizados para servicios publicados desde ArcGIS Desktop
Para probar que el paquete se instaló correctamente, escriba un script de Python que importe el paquete que instaló y ejecute el script. Si no está familiarizado con la ejecución de scripts independientes, siga los pasos que aparecen a continuación.
- Abra la ventana del terminal.
- Ejecute el Python 2.7 del servidor con el script como argumento, por ejemplo, <ArcGISServer_InstallDir>/arcgis/server/tools/python ~/projectX/mytestscript.py.
Nota:
Las bibliotecas de Python instaladas por una instalación de ArcGIS Server (Linux) son Windows de 64 bits de Python. Por lo tanto, siempre debería usar el separador de ruta de Windows (\) para scripts de Python independientes al acceder a los datos y demás módulos de Python. Además, tenga en cuenta que existe un directorio de Z:\ que se asigna a / de los sistemas Linux. En un script de Python, puede acceder a datos y otros módulos de Python utilizando la asignación Z:\. Por ejemplo, se puede acceder a los datos de /myuser/myproject/data con z:\myuser\myproject\data.
Esto no se aplica a los scripts de Python publicados desde ArcGIS Desktop porque ese proceso de publicación convierte todas las rutas al formato correcto.