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 выполните для каждого компьютера сайта следующие шаги:
- Войдите на компьютер ArcGIS Server под учетной записью ArcGIS Server и откройте окно командной строки от имени администратора.
- Измените директорию на <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.
- Клонируйте среду Python сервера по умолчанию с новым именем, например, newenvname, в директорию установки среды ArcGIS Server Python, используя команду conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts. Замените префикс на имя вашей папки установки и имя новой среды.
- Чтобы активировать клонированную среду, запустите proswap newenvname.
- Установите сторонние пакеты Python, запустив conda install. Используйте pip install, только если conda install не доступен.
- Перезапустите сервисы ArcGIS Server на вкладке Службы в Windows Task Manager или в Windows Services. На перезапуск сервисов может потребоваться несколько минут.
- Повторите шаги с 1 по 6 на каждом компьютере сайта ArcGIS Server, если требуется.
Чтобы добавить дополнительные пакеты к имеющейся среде conda, выполните следующие шаги:
- Войдите в свой компьютер ArcGIS Server. Возможно, вам потребуется учетная запись с правами администратора.
- В меню Пуск откройте Python 3 Command Prompt. Он может находиться в папке ArcGIS Server, в зависимости от ОС.
- Запустите conda install для пакетов, которые необходимо развернуть. Используйте pip install, только если conda install не доступен.
- Перезапустите сервисы геообработки в ArcGIS Server Manager.
- Дополнительно перезапустите сервис ArcGIS Server на вкладке Службы в Windows Task Manager. Все службы будут снова подключены через несколько минут.
- Повторите шаги с 1 по 5 на каждом компьютере сайта ArcGIS Server, если требуется.
Настройка среды Python для отдельного сервиса геообработки
Клонируйте среду Python сервера по умолчанию, установите сторонние пакеты Python и измените свойства сервиса геообработки, выполнив следующие шаги:
- Войдите на компьютер ArcGIS Server и откройте из меню Пуск Python 3 Command Prompt. Рекомендуется запускать командную строку от имени администратора, в противном случае вы не сможете клонировать среду в определенные каталоги.
- Клонируйте среду 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.
- Активируйте новую среду в окне командной строки с помощью activate newenvname. Если вы используете каталог за пределами каталога ArcGIS Server среды установки Python, укажите полный путь к вашей клонированной среде с помощью activate <fullpath>\outsideenvname.
- Установите пакеты Python с conda install packagename=version. Это необязательно, но рекомендуется для выравнивания версии пакета, используемой в ArcGIS Pro в процессе публикации, и версии пакета, установленной на сервере.
- Когда все пакеты будут установлены, перейдите в administrator directory ArcGIS Server. В Ресурсы в нижней части страницы найдите сервисы.
- Выберите сервис геообработки, для которого вы желаете настроить среду Python.
- В разделе Поддерживаемые операции внизу этой страницы щелкните Редактировать.
- В сервисе 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": [] }
- Щелкните кнопку Сохранить изменения, чтобы сохранить новый параметр.
- Сервис будет автоматически перезапущен.
Сервисы, опубликованные из ArcGIS Desktop
В следующих шагах описываются сервисы геообработки, опубликованные из ArcMap и модуля arcpy на базе Python 2.7. Выполните эти шаги на всех компьютерах сайта ArcGIS Server. Пакет будет установлен на используемый с сервером по умолчанию Python 2.7 и будет применяться ко всем сервисам, опубликованным из ArcGIS Desktop.
- Загрузите пакет 64-разрядной версии для Windows стороннего поставщика, которую вы хотели бы установить.
- Дважды щелкните файл .msi или .exe, чтобы установить пакет.
Пользовательские пакеты обычно устанавливаются в папку C:\Python27\ArcGISx6410.8\lib\site-packages.
Тестирование пользовательских пакетов Python для сервисов, опубликованных из ArcGIS Desktop
Чтобы проверить правильность установки пакета, создайте скрипт Python, который импортирует установленный пакет, и запустите скрипт. Если вы еще не знаете, как запускать отдельные скрипты, следуйте приведенным ниже пошаговым инструкциям.
- Откройте окно терминала.
- Запустите 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, так как процесс публикации конвертирует все пути в корректный формат.