Skip To Content

Implementar paquetes de Python personalizados para ArcGIS Server

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.

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:

  1. Inicie sesión en su equipo de ArcGIS Server con la cuenta de ArcGIS Server y abra la ventana de comando como administrador.
  2. Cambie el directorio a <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. 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". Sustituya el prefijo por el directorio de instalación y el nombre del nuevo entorno.
  4. Para activar el entorno clonado, ejecute proswap newenvname.
  5. Instale los paquetes de Python de terceros ejecutando conda install. Utilice pip install solamente si conda install no está disponible.
  6. 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.
  7. 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:

  1. Inicie sesión en su equipo de ArcGIS Server.
  2. 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.
  3. Ejecute conda install para los paquetes que se deben implementar. Utilice pip install solamente si conda install no está disponible.
  4. Reinicie el servicio de geoprocesamiento en ArcGIS Server Manager.
  5. 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.
  6. 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:

  1. 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.
  2. 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". 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".
  3. 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.
  4. 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.
  5. 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.
  6. Seleccione el servicio de geoprocesamiento para el que desea especificar un entorno de Python.
  7. Vaya a Operaciones compatibles en la parte inferior de la página y haga clic en editar.
  8. 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. Una propiedad del servicio simplificada JSON incluyendo la nueva propiedad de condaEnvironmentPath como

    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": []
    }
  9. Haga clic en el botón Guardar ediciones para guardar los cambios.
  10. 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.

  1. Descargue la versión de Windows de 64 bits del paquete de terceros que desea instalar.
  2. 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.

  1. Abra la ventana del terminal.
  2. 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.