Развертывание пользовательских пакетов Python для ArcGIS Server
В ArcGIS Server включена среда conda на базе Python 3. Установка Python для ArcGIS Server включает пакеты, такие как numpy и matplotlib. Однако если вы хотите установить дополнительные пользовательские пакеты Python для своих инструментов-скриптов и набора инструментов Python, выполните следующие действия. Подобно ArcGIS Pro, ArcGIS Server использует conda для управления Python-средами. Дополнительные сведения об использовании и работе с conda см. в разделе Введение в conda.
Для получения дополнительной информации о среде Python в ArcGIS Pro см. раздел Python в ArcGIS Pro. Рекомендуется клонировать среду Python по умолчанию для проведения обновлений.
Только одна среда Python, применяемая ко всем сервисам геообработки, может быть активна в определенный момент времени. Вы также можете задавать среды Python для отдельных сервисов геообработки, если сервисам нужны собственные среды Python.
При клонировании среды убедитесь, что у учетной записи ArcGIS Server есть права на чтение и выполнение в клонированной среде, иначе Python не инициализируется, и никакой код Python в вашем инструменте не будет запускаться.
При удалении нужно вручную управлять клонированной средой. После обновления ArcGIS Server также нужно будет вручную обновить клонированную среду Python с помощью команды proup.
Настройка среды Python для всех сервисов геообработки
Чтобы развернуть сторонние пакеты Python с ArcGIS Server для всех сервисов геообработки, выполните следующие действия на каждом компьютере вашего сайта.
Примечание:
Это также изменит среду Python в системных сервисах геообработки.
Войдите в свой компьютер ArcGIS Server под учетной записью ArcGIS Server или учетной записью, у которой есть доступ к стандартной среде Python и каталогу назначения для клонированной среды.
Запустите Wine explorer, чтобы подготовиться к клонированию стандартной среды.
Запустите следующую команду:
source <install>/framework/etc/arcenv wine cmdПосле активации Wine клонируйте среду следующей командой:
Примечание:
Для команды
conda-procloneне требуется доступ к интернету.Примечание:
Убедитесь, что у учетной записи ArcGIS Server есть доступ к чтению и записи клонированной среды.
Примечание:
Стандартная среда обычно находится в
<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>Чтобы узнать больше о
conda-proclone, запуститеconda-proclone -h.Активируйте клонированную среду, запустив
activate <path to cloned environment>в команде Wine.Установите пользовательские пакеты в активированную клонированную среду в команде Wine.
Примечание:
Большинство пакетов пакет Python сторонних производителей будут работать, однако если пакет выполняет вызовы WIN32 (прямо или косвенно взаимодействуя с ОС Windows), то эти пакеты не будут функционировать должным образом даже при успешной настройке.
Следующая команда является примером установки пакета Python
flask.conda install flaskПереключите сервер на клонированную среду с помощью следующей команды в команде Wine:
conda proswap -n <cloned environment> --all-users`Примечание:
Если вы используете учетную запись ArcGIS Server для сеанса, команда
--all-usersне является обязательной. Если вы копируете клонированную среду за пределы папки~\Python\envsпо умолчанию, введите полный путь к среде.Примечание:
Все ваши сервисы геообработки, включая системные сервисы геообработки, будут использовать клонированную среду после обмена.
Перезапустите сервис ArcGIS Server.
Начните новый сеанс или выйдите из команды Wine с помощью
exit().Примечание:
Скрипты
startserverиstopserverнаходятся в каталогеscriptsвашей установки ArcGIS Server.Для развертывания с несколькими компьютерами повторяйте указанные выше действия на всех остальных компьютерах вашего сайта ArcGIS Server.
Настройка среды Python для отдельного сервиса геообработки
Выполните следующие действия, чтобы создать среду для одного сервиса геообработки.
Войдите в свой компьютер ArcGIS Server под учетной записью ArcGIS Server или учетной записью, у которой есть доступ к стандартной среде Python и каталогу назначения для клонированной среды.
Запустите Wine explorer, чтобы подготовиться к клонированию стандартной среды.
Запустите следующую команду:
source <install>/framework/etc/arcenv wine cmdПосле активации Wine клонируйте среду следующей командой:
Примечание:
Для команды
conda-procloneне требуется доступ к интернету.Примечание:
Убедитесь, что у учетной записи ArcGIS Server есть доступ к чтению и записи клонированной среды.
Примечание:
Стандартная среда обычно находится в
<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>Чтобы узнать больше о
conda-proclone, запуститеconda-proclone -h.Активируйте клонированную среду, запустив
activate <path to cloned environment>в команде Wine.Установите пользовательские пакеты в активированную клонированную среду в команде Wine.
Примечание:
Большинство пакетов пакет Python сторонних производителей будут работать, однако если пакет выполняет вызовы WIN32 (прямо или косвенно взаимодействуя с ОС Windows), то эти пакеты не будут функционировать должным образом даже при успешной настройке.
Следующая команда является примером установки пакета Python
flask.conda install flaskКогда все пакеты установлены, перейдите в директорию администратора ArcGIS Server и нажмите на ресурс Сервисы.
Выберите сервис геообработки, для которого вы желаете настроить среду Python.
В разделе Поддерживаемые операции внизу этой страницы щелкните редактировать.
В сервисе JSON добавьте пару
"condaEnvironmentPath": "<full path to cloned-env>"в параметры сервиса.Примечание:
Если вы используете каталог за пределами директории среды установки Python, укажите полный путь к вашей клонированной среде.
Ниже приведено упрощённое свойство сервиса JSON, включающее свойство
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": [] }Щелкните кнопку Сохранить изменения, чтобы сохранить новый параметр.
Сервис автоматически перезапущен.
Обновление клонированной среды Python после обновления ArcGIS Server
Традиционно при обновлении ArcGIS Server до более новой версии вам необходимо удалить ранее клонированные среды. Затем вам потребуется клонировать среду Python из обновленного ArcGIS Server и перенастроить свои сервисы.
В ArcGIS Server 12.1 и более поздних версий вы можете использовать команду conda proup для обновления клонированных сред Python с более ранних версий ArcGIS Server, выполнив следующие шаги:
Войдите в свой компьютер ArcGIS Server под учетной записью ArcGIS Server или учетной записью, у которой есть доступ к клонированной среде и установке сервера.
Запустите команду Wine и измените каталог на
<install>\server\framework\runtime\ArcGIS\bin\Python\Scripts.Обновляйте среду, используя либо
conda proup -n <environment name>, либоconda proup -p <environment directory path>.После обновления среды Python перезапустите все сервисы геообработки, используемые этой средой conda, или перезапустите сервис ArcGIS Server.
Чтобы узнать больше о команде conda proup, используйте conda proup --help. Эту функцию нельзя использовать для понижения версии среды после понижения версии ArcGIS Server. Эта функция недоступна в автономных средах.
Настройка среды Python для всех сервисов геообработки
Чтобы развернуть сторонние пакеты Python с ArcGIS Server для всех сервисов геообработки, выполните следующие действия на каждом компьютере вашего сайта. Обратите внимание, что это также изменит среду Python ваших системных сервисов геообработки.
Войдите на компьютер с ArcGIS Server и откройте окно командной строки от имени администратора.
Примечание:
Вам могут понадобиться права администратора — в зависимости от местоположения вашей среды conda.
Измените директорию на
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Клонируйте стандартную среду Python сервера с новым именем среды, используя либо
conda create, либоconda proclone:Примечание:
Предлагаемое местоположение находится в параметрах среды Python каталога установки ArcGIS Server. В качестве альтернативы вы можете указать местоположение в другом месте, к которому у учетной записи ArcGIS Server есть доступ.
- Используйте следующую команду, чтобы клонировать среду с помощью
conda create:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsВ версии 12.1 и выше используйте
conda procloneдля клонирования среды, когда ваш ArcGIS Server не имеет доступа к интернету или если вы предпочитаете локальную копию существующей среды для более быстрой обработки. Вы можете заменитьarcigspro-py3на другой существующий путь среды Python в качестве входной среды для клонирования.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Используйте следующую команду, чтобы клонировать среду с помощью
Запустите
conda proswap -n <new environment name> --all-users, чтобы активировать клонированную среду.Примечание:
Задание аргумента
--all-usersнеобязательно, если вы вошли на свой компьютер как пользователь с учетной записью ArcGIS Server; в противном случае это обязательный аргумент.Примечание:
Если клонированная среда conda находится вне
{ServerInstallation}\framework\runtime\ArcGIS\bin\Python\envs\, укажите полный путь к этому местоположению, используяconda proswap -p "<full-path-to-cloned-directory>" --all-users.Установите сторонние пакеты пакет Python, запустив
conda install.Примечание:
Используйте
pip install, только если командаconda installнедоступна.Перезапустите сервис ArcGIS Server.
Примечание:
На перезапуск всех сервисов может потребоваться несколько минут.
Повторите шаги с 1 по 6 на всех других компьютерах вашего сайта ArcGIS Server для развертывания на нескольких компьютерах.
Добавление дополнительных пакетов
Чтобы добавить дополнительные пакеты к имеющейся среде conda, выполните следующие шаги:
Войдите в свой компьютер ArcGIS Server. Вам могут понадобиться права администратора — в зависимости от местоположения вашей среды conda.
В меню Пуск откройте Python 3 Command Prompt. Он может находиться в папке ArcGIS Server, в зависимости от ОС. Если его нет в меню Пуск, можно запустить файл
proenv.batиз<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Запустите
conda installдля пакетов, которые необходимо развернуть.Примечание:
Используйте
pip install, только если командаconda installнедоступна.Перезапустите сервис геообработки в ArcGIS Server Manager.
По желанию перезапустите сервис ArcGIS Server.
Примечание:
Все сервисы будут перезапущены через несколько минут.
Если у вас развертывание, состоящее из нескольких компьютеров, повторите шаги с 1 по 5 на каждом устройстве вашего сайта ArcGIS Server.
Настройка среды Python для отдельного сервиса геообработки
Клонируйте среду пакет Python сервера по умолчанию, установите сторонние пакеты Python и измените свойства сервиса геообработки, выполнив следующие шаги:
Войдите на компьютер ArcGIS Server и откройте из меню Пуск Python 3 Command Prompt.
Рекомендуется запускать командную строку от имени администратора, в противном случае вы не сможете клонировать среду в определенные каталоги.
Клонируйте стандартную среду Python сервера с новым именем среды, используя либо
conda create, либоconda proclone:Примечание:
Предлагаемое местоположение находится в параметрах среды Python каталога установки ArcGIS Server. В качестве альтернативы вы можете указать другое местоположение, к которому у учетной записи ArcGIS Server есть доступ.
- Используйте следующую команду, чтобы клонировать среду с помощью
conda create:
conda create --clone arcgispro-py3 --prefix <"cloned environment path"> --pinned --no-shortcutsВ версии 12.1 и выше используйте
conda procloneдля клонирования среды, когда ваш ArcGIS Server не имеет доступа к интернету или если вы предпочитаете локальную копию существующей среды для более быстрой обработки. Вы можете заменитьarcigspro-py3на другой существующий путь среды Python в качестве входной среды для клонирования.`conda proclone <"cloned environment path"> --input-env arcgispro-py3`
- Используйте следующую команду, чтобы клонировать среду с помощью
Активируйте новую среду в окне командной строки с помощью
activate <new environment name>. Если вы используете каталог за пределами директории среды Python установки ArcGIS Server, укажите полный путь к клонированной среде с помощьюactivate <fullpath>\<new environment name>.Установите пакеты на Python с
conda install packagename=version.Это необязательно, но рекомендуется для выравнивания версии пакета, используемой в ArcGIS Pro в процессе публикации, и версии пакета, установленной на сервере.
Когда все пакеты установлены, перейдите в директорию администратора ArcGIS Server и щелкните сервисы в разделе Ресурсы.
Выберите сервис геообработки, для которого вы желаете настроить среду Python.
В разделе Поддерживаемые операции щелкните редактировать внизу страницы.
В сервисе JSON добавьте пару ключ-значение
"condaEnvironmentPath": <"new environment name">или"condaEnvironmentPath": "<full path to new environment>"в свойства сервиса, если клонированная среда находится в каталоге среды Python установки ArcGIS Server. Если вы используете каталог за пределами директории среды Python установки ArcGIS Server, укажите полный путь к вашей клонированной среде. Следующий пример — упрощённое свойство сервиса JSON, включающее свойствоcondaEnvironmentPath:{ "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": [] }Щелкните кнопку Сохранить изменения, чтобы сохранить новый параметр.
Сервис автоматически перезапущен.
Обновление клонированной среды Python после обновления ArcGIS Server
Используйте команду conda proup для обновления сред Python, клонированных из предыдущих версий ArcGIS Server. Для этого выполните следующие действия:
Войдите на компьютер с ArcGIS Server и откройте окно командной строки от имени администратора.
Измените директорию на
<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.Обновляйте среду, используя либо
conda proup -n <environment name>, либоconda proup -p <environment directory path>.После обновления среды Python перезапустите все сервисы геообработки, используемые этой средой conda, или перезапустите сервис ArcGIS Server.
Чтобы узнать больше о команде conda proup, используйте conda proup --help. Эту функцию нельзя использовать для понижения версии среды после понижения версии ArcGIS Server. Эта функция также недоступна в отключенной среде.