Skip To Content

Развертывание пользовательских пакетов Python для ArcGIS Server

В ArcGIS Enterprise 10.5 и новее среда conda на базе Python 3 встроена в ArcGIS Server.

Установка Python для ArcGIS Server включает пакеты, такие как numpy и matplotlib. Однако, если необходимо установить дополнительные пользовательские пакеты Python, выполните приведенные ниже действия.

Сервисы, опубликованные из ArcGIS Pro

Как и ArcGIS Pro, ArcGIS Server использует conda для управления средами Python. Начиная с ArcGIS Server 10.7.1, вы можете задавать среду Python для всех сервисов геообработки. Начиная с ArcGIS Server 10.8.1, вы можете задавать среду Python для отдельного сервиса геообработки.

Шаги, описанные ниже, используются для сервисов геообработки, опубликованных из ArcGIS Pro или с помощью ArcPy. Более подробную информацию о среде Python в ArcGIS Pro см.в разделе Python в ArcGIS Pro. Рекомендуется клонировать среду Python по умолчанию для проведения обновлений. Одновременно только одна среда Python может быть активирована для ArcGIS Server.

Дополнительные сведения об использовании и работе с conda см. в разделе Введение в conda.

Настройка среды Python для всех сервисов геообработки

Для развертывания сторонних пакетов Python на ArcGIS Server выполните для каждого компьютера сайта следующие шаги:

  1. Войдите на компьютер с ArcGIS Server и откройте окно командной строки от имени администратора.
  2. Измените директорию на <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Клонируйте среду сервера по умолчанию Python с новым именем среды. Предлагаемое расположение находится в параметрах среды ArcGIS Server каталога установки Python. Запустите команду conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts, используя пример newenvname. Замените префикс на имя вашей папки установки и имя новой среды. В качестве альтернативы вы можете указать расположение за пределами каталога установки.
  4. Запустите conda proswap -n newenvname --all-users, чтобы активировать клонированную среду.

    Задание аргумента --all-users необязательно, если вы вошли на свой компьютер как пользователь учетной записи ArcGIS Server; в противном случае это обязательный аргумент. Если клонированная среда conda находится вне предполагаемого местоположения, укажите полный путь к этому местоположению, используя conda proswap -p "<full-path-to-cloned-directory>" --all-users.

  5. Установите сторонние пакеты Python, запустив conda install.

    Используйте pip install, только если conda install не доступен.

  6. Перезапустите сервис ArcGIS Server.

    На перезапуск сервисов может потребоваться несколько минут.

  7. Повторите шаги с 1 по 6 на всех других компьютерах вашего сайта ArcGIS Server для развертывания на нескольких компьютерах.

Добавление дополнительных пакетов

Чтобы добавить дополнительные пакеты к имеющейся среде conda, выполните следующие шаги:

  1. Войдите в свой компьютер ArcGIS Server. Вам могут понадобиться права администратора - в зависимости от местоположения вашей среды conda.

    Вам могут понадобиться права администратора - в зависимости от местоположения вашей среды conda.

  2. В меню Пуск откройте Python 3 Command Prompt. Он может находиться в папке ArcGIS Server, в зависимости от ОС. Если его нет в меню Пуск, можно запустить файл proenv.bat из <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Запустите conda install для пакетов, которые необходимо развернуть.

    Используйте pip install, только если conda install не доступен.

  4. Перезапустите сервисы геообработки в ArcGIS Server Manager.
  5. Можно перезапустить сервис ArcGIS Server.

    Все службы будут перезапущены через несколько минут.

  6. Повторите шаги с 1 по 5 на каждом компьютере вашего сайта ArcGIS Server, если у вас есть развертывание на нескольких компьютерах.

Настройка среды Python для отдельного сервиса геообработки

Клонируйте среду Python сервера по умолчанию, установите сторонние пакеты Python и измените свойства сервиса геообработки, выполнив следующие шаги:

  1. Войдите на компьютер ArcGIS Server и откройте из меню Пуск Python 3 Command Prompt.

    Рекомендуется запускать командную строку от имени администратора, в противном случае вы не сможете клонировать среду в определенные каталоги.

  2. Клонируйте среду Python сервера по умолчанию с новым именем, например, newenvname, в директорию установки среды ArcGIS Server Python, используя команду conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts. Замените префикс на имя вашей папки установки и имя новой среды. Чтобы клонировать среду в любые другие каталоги за пределами каталога установки ArcGIS Server, выполните conda create --clone arcgispro-py3 --prefix "<fullpath>\outsideenvname" --pinned --no-shortcuts.
  3. Активируйте новую среду в окне командной строки с помощью activate newenvname. Если вы используете каталог за пределами каталога среды Python установки ArcGIS Server, укажите полный путь к клонированной среде с помощью activate <fullpath>\outsideenvname.
  4. Установите пакеты Python с помощью conda install packagename=version.

    Это необязательно, но рекомендуется для выравнивания версии пакета, используемой в ArcGIS Pro в процессе публикации, и версии пакета, установленной на сервере.

  5. Когда все пакеты будут установлены, перейдите в директорию администратораArcGIS Server, и в разделе Ресурсы внизу страницы перейдите к сервисы.
  6. Выберите сервис геообработки, для которого вы желаете настроить среду Python.
  7. В разделе Поддерживаемые операции внизу этой страницы щелкните Редактировать.
  8. В сервисе JSON добавьте пару ключ-значение "condaEnvironmentPath": "newenvname" или "condaEnvironmentPath": "<full path to newenvname>" в свойства сервиса, если клонированная среда находится в каталоге среды Python установки ArcGIS Server. Если вы используете каталог за пределами каталога ArcGIS Server среды установки Python, укажите полный путь к вашей клонированной среде. Упрощенный параметр сервиса JSON, включающий новый параметр condaEnvironmentPath, выглядит так:

    Развертывание пользовательских пакетов Python для 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. Щелкните кнопку Сохранить изменения, чтобы сохранить новый параметр.

Сервис автоматически перезапущен.

Обновление клонированной среды Python после обновления ArcGIS Server

Традиционно при обновлении ArcGIS Server до более новой версии вам необходимо удалить ранее клонированные среды. Затем вам потребуется клонировать среду Python из обновленной ArcGIS Server и перенастроить свои сервисы.

В ArcGIS Server версии 11.0 используйте команду conda proup для обновления клонированных сред Python из более ранних версий ArcGIS Server, выполнив следующие действия:

  1. Войдите на компьютер с ArcGIS Server и откройте окно командной строки от имени администратора.
  2. Измените директорию на <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Активируйте среду conda, которую хотите обновить, запустив conda activate <environment name or path>.
  4. После активации обновите среду, запустив либо conda proup -n <environment name>, либо conda proup -p <environment directory path>.
  5. После обновления среды Python перезапустите все сервисы геообработки, используемые этой средой conda, или перезапустите сервис ArcGIS Server.

Чтобы узнать больше о команде conda proup, используйте conda proup --help. Эту функцию нельзя использовать для понижения версии среды после понижения версии ArcGIS Server. Эта функция также недоступна в отключенной среде.