Skip To Content

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

ArcGIS Server включает Python 2.7 для Windows (64-разрядная). В 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.

Примечание:

Если используется клонированная среда, которая была создана до применения исправления ArcGIS Server log4j, активируйте среду, запустив conda activate your_environment, и запустите conda update saspy для устранения уязвимости в системе безопасности log4j, используемой с более старой версией saspy в клонированной среде. Если исправление уже установлено, включите флаг --pinned при клонировании среды по умолчанию, подробно описанной в инструкциях ниже. После активации клонированной среды запустите conda update saspy, чтобы убедиться, что уязвимость безопасности log4j не будет присутствовать в клонированной среде.

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

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

  1. Войдите на компьютер ArcGIS Server под учетной записью ArcGIS Server и откройте окно командной строки от имени администратора.
  2. Измените директорию на <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
  3. Клонируйте среду Python сервера по умолчанию с новым именем, например, newenvname, в директорию установки среды ArcGIS Server Python, используя команду conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts. Замените префикс на имя вашей папки установки и имя новой среды.
  4. Чтобы активировать клонированную среду, запустите proswap newenvname.
  5. Установите сторонние пакеты Python, запустив conda install. Используйте pip install, только если conda install не доступен.
  6. Перезапустите сервисы ArcGIS Server на вкладке Службы в Windows Task Manager или в Windows Services. На перезапуск сервисов может потребоваться несколько минут.
  7. Повторите шаги с 1 по 6 на каждом компьютере сайта ArcGIS Server, если требуется.

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

  1. Войдите в свой компьютер ArcGIS Server. Возможно, вам потребуется учетная запись с правами администратора.
  2. В меню Пуск откройте Python 3 Command Prompt. Он может находиться в папке ArcGIS Server, в зависимости от ОС.
  3. Запустите conda install для пакетов, которые необходимо развернуть. Используйте pip install, только если conda install не доступен.
  4. Перезапустите сервисы геообработки в ArcGIS Server Manager.
  5. Дополнительно перезапустите сервис ArcGIS Server на вкладке Службы в Windows Task Manager. Все службы будут снова подключены через несколько минут.
  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. Если вы используете каталог за пределами каталога ArcGIS Server среды установки Python, укажите полный путь к вашей клонированной среде с помощью activate <fullpath>\outsideenvname.
  4. Установите пакеты Python с conda install packagename=version. Это необязательно, но рекомендуется для выравнивания версии пакета, используемой в ArcGIS Pro в процессе публикации, и версии пакета, установленной на сервере.
  5. Когда все пакеты будут установлены, перейдите в administrator directory ArcGIS Server. В Ресурсы в нижней части страницы найдите сервисы.
  6. Выберите сервис геообработки, для которого вы желаете настроить среду Python.
  7. В разделе Поддерживаемые операции внизу этой страницы щелкните Редактировать.
  8. В сервисе JSON добавьте пару ключ-значение "condaEnvironmentPath": "newenvname" в свойства сервиса, если ваша клонированная среда ArcGIS Server находится в каталоге среды установки Python. Если вы используете каталог за пределами каталога ArcGIS Server среды установки Python, укажите полный путь к вашей клонированной среде.

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

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

В следующих шагах описываются сервисы геообработки, опубликованные из ArcMap и модуля arcpy на базе Python 2.7. Выполните эти шаги на всех компьютерах сайта ArcGIS Server. Пакет будет установлен на используемый с сервером по умолчанию Python 2.7 и будет применяться ко всем сервисам, опубликованным из ArcGIS Desktop.

  1. Загрузите пакет 64-разрядной версии для Windows стороннего поставщика, которую вы хотели бы установить.
  2. Дважды щелкните файл .msi или .exe, чтобы установить пакет.

Пользовательские пакеты обычно устанавливаются в папку C:\Python27\ArcGISx6410.8\lib\site-packages.

Тестирование пользовательских пакетов Python для сервисов, опубликованных из ArcGIS Desktop

Чтобы проверить правильность установки пакета, создайте скрипт Python, который импортирует установленный пакет, и запустите скрипт. Если вы еще не знаете, как запускать отдельные скрипты, следуйте приведенным ниже пошаговым инструкциям.

  1. Откройте окно терминала.
  2. Запустите Python 2.7 с сервера со скриптом в качестве аргумента, например <ArcGISServer_InstallDir>/arcgis/server/tools/python ~/projectX/mytestscript.py.

Примечание:

С ArcGIS Server (Linux) устанавливаются 64-разрядные Python библиотеки Python для Windows. Поэтому автономные скрипты Python всегда должны использовать разделитель путей в ОС Windows (\) при доступе к данным и другим модулям Python. Кроме того, следует помнить о существовании директории Z:\, которая подключается в Linux как системная /. В скрипте Python можно получить доступ к данным и другим модулям Python через отображение диска Z:\. Например, данные в /myuser/myproject/data могут быть доступны с помощью z:\myuser\myproject\data.

Это не применяется к скриптам Python, которые публикуются из ArcGIS Desktop, так как процесс публикации конвертирует все пути в корректный формат.