Skip To Content

Implementar paquetes de Python personalizados para ArcGIS Server

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, si desea instalar paquetes de Python personalizados adicionales, siga estos 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 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 Python predeterminado del servidor con un nuevo nombre de entorno. La ubicación sugerida está en el directorio del entorno Python de la instalación de ArcGIS Server. Ejecute el comando conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts con un newenvname de muestra. Sustituya el prefijo por el directorio de instalación y el nombre del nuevo entorno. Como alternativa, puede especificar una ubicación fuera del directorio de instalación.
  4. Para activar el entorno clonado, ejecute conda proswap -n newenvname --all-users. Proporcionar el argumento --all-users es opcional si inició sesión en su equipo como usuario de la cuenta de ArcGIS Server; de lo contrario, es un argumento obligatorio. Si su entorno de conda clonado está fuera de la ubicación sugerida, proporcione la ruta completa a esa ubicación mediante conda proswap -p "<full-path-to-cloned-directory>" --all-users
  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. Tardará unos minutos hasta que todos los servicios vuelvan a estar en línea.
  7. Repita los pasos del 1 al 6 en el resto de equipos de su sitio de ArcGIS Server para una implementación de varios equipos.

Agregar más paquetes

Para agregar más paquetes al entorno de conda existente, siga estos pasos:

  1. Inicie sesión en su equipo de ArcGIS Server. Es posible que necesite privilegios administrativos en función de la ubicación de su entorno de conda existente.
  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. Si no está disponible en el menú de inicio, puede iniciar el proenv.bat en <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  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 ArcGIS ServerArcGIS Server. Todos los servicios se reiniciarán en pocos minutos.
  6. Repita los pasos del 1 al 5 en cada equipo de su sitio de ArcGIS Server si tiene una implementación de varios equipos.

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" --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.
  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" o "condaEnvironmentPath": "<full path to newenvname>" a las propiedades del servicio cuando su entorno clonado esté en el directorio de entorno Python de la instalación de ArcGIS Server. Si está utilizando un directorio fuera del directorio del entorno Python de instalación de ArcGIS Server, proporcione la ruta completa a su entorno clonado. Una propiedad del servicio simplificada JSON que incluya la nueva propiedad de condaEnvironmentPath es como sigue:

    Implementar paquetes de Python personalizados para ArcGIS Server

    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\\p30\\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.

Su servicio se reinicia automáticamente.