Implementar paquetes de Python personalizados para ArcGIS Server
ArcGIS Server incluye un entorno conda basado en Python 3. La instalación de Python de ArcGIS Server incluye paquetes como numpy y matplotlib. No obstante, si desea instalar paquetes Python personalizados adicionales para sus herramientas de script y su caja de herramientas de Python, siga los pasos que se indican a continuación. Al igual que ArcGIS Pro, ArcGIS Server utiliza conda para administrar entornos de Python. Para obtener más información sobre cómo usar y trabajar con conda, consulte Introducción a conda.
Para obtener más información sobre el entorno de Python en ArcGIS Pro, consulta Python en ArcGIS Pro. Le recomendamos que clone el entorno de Python predeterminado para realizar actualizaciones.
Solo puede haber un entorno de Python activo a la vez que sea válido para todos los servicios de geoprocesamiento. También puede especificar entornos de Python para servicios de geoprocesamiento concretos si estos necesitan sus propios entornos de Python personalizados.
Al clonar el entorno, asegúrese de que la cuenta de ArcGIS Server tenga permisos de lectura y ejecución en el entorno clonado; de lo contrario, Python no se iniciará y no se ejecutará ningún código Python de su herramienta.
Debe gestionar manualmente el entorno clonado durante la desinstalación. Además, tendrá que actualizar manualmente un entorno de Python clonado mediante el comando proup tras actualizar ArcGIS Server.
Especificar un entorno de Python para todos los servicios de geoprocesamiento
Para implementar paquetes de Python de terceros con ArcGIS Server en todos los servicios de geoprocesamiento, siga estos pasos en cada equipo de su sitio.
Nota:
Esto también modificará el entorno de Python de los servicios de geoprocesamiento de su sistema.
Inicie sesión en su equipo de ArcGIS Server con la cuenta de ArcGIS Server o con una cuenta que tenga acceso al entorno Python predeterminado y al directorio de destino del entorno clonado.
Abra el explorador de Wine para preparar la clonación del entorno predeterminado.
Ejecute el comando siguiente:
source <install>/framework/etc/arcenv wine cmdUna vez activado Wine, clone el entorno con el siguiente comando:
Nota:
El comando
conda-procloneno requiere conexión a Internet.Nota:
Asegúrese de que la cuenta de ArcGIS Server tenga acceso de lectura y escritura al entorno clonado.
Nota:
El entorno predeterminado suele estar en
<install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.cd "Z:\data\arcgis\server\framework\runtime\ArcGIS\bin\Python\Scripts" conda-proclone -i <path to default environment> <path to cloned environment>Para obtener más información sobre
conda-proclone, ejecuteconda-proclone -h.Active el entorno clonado ejecutando
activate <path to cloned environment>en la línea de comandos de Wine.Instale los paquetes personalizados en el entorno clonado y activado mediante el comando Wine.
Nota:
La mayoría de los paquetes de Python de terceros funcionarán; sin embargo, si el paquete realiza llamadas WIN32 (interactuando directa o indirectamente con el sistema operativo Windows), esos paquetes no funcionarán correctamente incluso con una configuración correcta.
El siguiente comando es un ejemplo de cómo instalar el paquete
flaskde Python.conda install flaskCambie su servidor al entorno clonado con el siguiente comando en la línea de comandos de Wine:
conda proswap -n <cloned environment> --all-users`Nota:
Si utiliza la cuenta de ArcGIS Server para la sesión, no es necesario utilizar el comando
--all-users. Si copias su entorno clonado fuera de la carpeta~\Python\envspredeterminada, indique la ruta completa al entorno.Nota:
Todos sus servicios de geoprocesamiento, incluidos los servicios de geoprocesamiento del sistema, utilizarán el entorno clonado tras el cambio.
Reinicie su servicio de ArcGIS Server.
Inicie una nueva sesión o cierre el comando Wine con
exit().Nota:
Los scripts
startserverystopserverse encuentran en el directorioscriptsde su instalación de ArcGIS Server.En el caso de una implementación en varios equipos, repita los pasos anteriores en todos los demás equipos de su sitio de ArcGIS Server.
Especificar un entorno de Python para un único servicio de geoprocesamiento
Siga los pasos que se indican a continuación para configurar un entorno para un único servicio de geoprocesamiento.
Inicie sesión en su equipo de ArcGIS Server con la cuenta de ArcGIS Server o con una cuenta que tenga acceso al entorno Python predeterminado y al directorio de destino del entorno clonado.
Abra el explorador de Wine para preparar la clonación del entorno predeterminado.
Ejecute el comando siguiente:
source <install>/framework/etc/arcenv wine cmdUna vez activado Wine, clone el entorno con el siguiente comando:
Nota:
El comando
conda-procloneno requiere conexión a Internet.Nota:
Asegúrese de que la cuenta de ArcGIS Server tenga acceso de lectura y escritura al entorno clonado.
Nota:
El entorno predeterminado suele estar en
<install>\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3.cd "<path to server install>\framework\runtime\ArcGIS\bin\Python\Scripts" conda-proclone -i <path to default environment> <path to cloned environment>Para obtener más información sobre
conda-proclone, ejecuteconda-proclone -h.Active el entorno clonado ejecutando
activate <path to cloned environment>en la línea de comandos de Wine.Instale los paquetes personalizados en el entorno clonado y activado mediante el comando Wine.
Nota:
La mayoría de los paquetes de Python de terceros funcionarán; sin embargo, si el paquete realiza llamadas WIN32 (interactuando directa o indirectamente con el sistema operativo Windows), esos paquetes no funcionarán correctamente incluso con una configuración correcta.
El siguiente comando es un ejemplo de cómo instalar el paquete
flaskde Python.conda install flaskUna vez que se instalen todos los paquetes, vaya al directorio del administrador de ArcGIS Server y haga clic en el recurso 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": "<full path to cloned-env>"a las propiedades del servicio.Nota:
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.
A continuación se muestra un archivo JSON simplificado de las propiedades del servicio que incluye la propiedad
condaEnvironmentPath:{ "serviceName": "regionalAnalysis", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "Z:\\data\\arcgis\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\Analysis.GPServer\\extracted\\p30\\RegionalAnalysis.tbx", "condaEnvironmentPath": <"path to cloned environment">, "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.
El servicio se reinicia automáticamente.
Actualizar un entorno de Python clonado tras una actualización de ArcGIS Server
Anteriormente, al actualizar ArcGIS Server a una versión más reciente, era necesario eliminar los entornos clonados anteriormente. Luego era necesario clonar el entorno Python desde la versión actualizada de ArcGIS Server y reconfigurar los servicios.
En ArcGIS Server 12.1 y versiones posteriores, puede utilizar el comando conda proup para actualizar los entornos Python clonados de versiones anteriores de ArcGIS Server siguiendo estos pasos:
Inicie sesión en su servidor ArcGIS Server con la cuenta de ArcGIS Server o con una cuenta que tenga acceso al entorno clonado y a la instalación del servidor.
Ejecute el comando de Wine y cambie al directorio
<install>\server\framework\runtime\ArcGIS\bin\Python\Scripts.Actualice el entorno ejecutando
conda proup -n <environment name>oconda proup -p <environment directory path>.Después de actualizar el entorno Python, reinicie todos los servicios de geoprocesamiento utilizados por este entorno conda o reinicie el servicio ArcGIS Server.
Para obtener más información sobre el comando conda proup, utilice conda proup --help. Esta función no puede utilizarse para migrar un entorno a una versión anterior tras un cambio a una versión anterior de ArcGIS Server. Esta función no está disponible en entornos sin conexión.
Especificar un entorno de Python para todos los servicios de geoprocesamiento
Para implementar paquetes de Python de terceros con ArcGIS Server en todos los servicios de geoprocesamiento, siga estos pasos en cada equipo de su sitio. Debe tener en cuenta que esto también modificará el entorno de Python de los servicios de geoprocesamiento de su sistema.
Inicie sesión en su equipo de ArcGIS Server y abra la ventana de comando como administrador.
Nota:
Es posible que necesite privilegios administrativos en función de la ubicación de su entorno de conda existente.
Cambie el directorio a
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Clone el entorno Python predeterminado del servidor con un nuevo nombre de entorno mediante
conda createoconda proclone.Nota:
La ubicación sugerida está en el directorio del entorno Python de la instalación de ArcGIS Server. También puede especificar una ubicación a la que la cuenta de ArcGIS Server tenga permisos de acceso.
- Utilice el siguiente comando para clonar el entorno con
conda create:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsA partir de la versión 12.1, utilice
conda proclonepara clonar el entorno cuando su ArcGIS Server no tenga acceso a Internet o si prefiere disponer de una copia local de un entorno existente para agilizar el procesamiento. Puede sustituirarcigspro-py3por la ruta de otro entorno Python ya existente como entorno de entrada que se va a clonar.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Utilice el siguiente comando para clonar el entorno con
Ejecute
conda proswap -n <new environment name> --all-userspara activar el entorno clonado.Nota:
Proporcionar el argumento
--all-userses opcional si inició sesión en su equipo como usuario de la cuenta de ArcGIS Server; de lo contrario, es un argumento obligatorio.Nota:
Si el entorno de conda clonado está fuera de
{ServerInstallation}\framework\runtime\ArcGIS\bin\Python\envs\, proporcione la ruta completa a esa ubicación medianteconda proswap -p "<full-path-to-cloned-directory>" --all-users.Instale paquetes de Python de terceros ejecutando
conda install.Nota:
Utilice
pip installsolamente siconda installno está disponible.Reinicie el servicio de ArcGIS Server.
Nota:
Tardará unos minutos hasta que todos los servicios vuelvan a estar en línea.
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:
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.
Desde el menú de inicio, abra la ventana de comando de Python 3. Puede que esté en la carpeta de ArcGIS Server, en función de su sistema operativo. Si no está disponible en el menú de inicio, puede ejecutar
proenv.baten<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Ejecute
conda installpara los paquetes que se deben implementar.Nota:
Utilice
pip installsolamente siconda installno está disponible.Reinicie el servicio de geoprocesamiento en ArcGIS Server Manager.
Opcionalmente, reinicie el servicio de ArcGIS Server.
Nota:
Todos los servicios se reiniciarán en pocos minutos.
Si dispone de una implementación con varios equipos, repita los pasos del 1 al 5 en cada uno de los equipos de su sitio de ArcGIS Server.
Especificar un entorno de Python para un único servicio de geoprocesamiento
Clone el entorno 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 Python predeterminado del servidor con un nuevo nombre de entorno mediante
conda createoconda proclone.Nota:
La ubicación sugerida está en el directorio del entorno Python de la instalación de ArcGIS Server. También puede especificar una ubicación a la que la cuenta de ArcGIS Server tenga permisos de acceso".
- Utilice el siguiente comando para clonar el entorno con
conda create:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsA partir de la versión 12.1, utilice
conda proclonepara clonar el entorno cuando su ArcGIS Server no tenga acceso a Internet o si prefiere disponer de una copia local de un entorno existente para agilizar el procesamiento. Puede sustituirarcigspro-py3por la ruta de otro entorno Python ya existente como entorno de entrada que se va a clonar.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Utilice el siguiente comando para clonar el entorno con
Active el nuevo entorno en la ventana de comando con
activate <new environment name>. 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 conactivate <fullpath>\<new environment name>.Instale paquetes de Python con
conda install packagename=version.Se recomienda 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 y haga clic en servicios en Recursos.
Seleccione el servicio de geoprocesamiento para el que desea especificar un entorno de Python.
Vaya a Operaciones compatibles, haga clic en editar en la parte inferior de la página.
En el servicio JSON, agregue el par clave-valor
"condaEnvironmentPath": <"new environment name">o"condaEnvironmentPath": "<full path to new environment>"a las propiedades del servicio cuando el 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. El siguiente ejemplo es un archivo JSON simplificado de las propiedades del servicio que incluye la propiedadcondaEnvironmentPath:{ "serviceName": "gvonly", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p30\\gvonly.tbx", "condaEnvironmentPath": <"new environment name">, "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.
El servicio se reinicia automáticamente.
Actualizar un entorno de Python clonado tras una actualización de ArcGIS Server
Utilice el comando conda proup para actualizar los entornos Python clonados a partir de las versiones anteriores de ArcGIS Server realizando los pasos siguientes:
Inicie sesión en su equipo de ArcGIS Server y abra la ventana de comando como administrador.
Cambie el directorio a
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Actualice el entorno ejecutando
conda proup -n <environment name>oconda proup -p <environment directory path>.Después de actualizar el entorno Python, reinicie todos los servicios de geoprocesamiento utilizados por este entorno conda o bien reinicie el servicio ArcGIS Server.
Para obtener más información sobre el comando conda proup, utilice conda proup --help. Esta función no puede utilizarse para migrar un entorno a una versión anterior tras un cambio a una versión anterior de ArcGIS Server. Esta función tampoco está disponible en un entorno desconectado.