Skip to main content

Развертывание пользовательских пакетов 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 в системных сервисах геообработки.

  1. Войдите в свой компьютер ArcGIS Server под учетной записью ArcGIS Server или учетной записью, у которой есть доступ к стандартной среде Python и каталогу назначения для клонированной среды.

  2. Запустите Wine explorer, чтобы подготовиться к клонированию стандартной среды.

  3. Запустите следующую команду:

    source <install>/framework/etc/arcenv
    wine cmd  
    
  4. После активации 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.

  5. Активируйте клонированную среду, запустив activate <path to cloned environment> в команде Wine.

  6. Установите пользовательские пакеты в активированную клонированную среду в команде Wine.

    Примечание:

    Большинство пакетов пакет Python сторонних производителей будут работать, однако если пакет выполняет вызовы WIN32 (прямо или косвенно взаимодействуя с ОС Windows), то эти пакеты не будут функционировать должным образом даже при успешной настройке.

    Следующая команда является примером установки пакета Python flask.

    conda install flask   
    
  7. Переключите сервер на клонированную среду с помощью следующей команды в команде Wine:

    conda proswap -n <cloned environment> --all-users`
    
    Примечание:

    Если вы используете учетную запись ArcGIS Server для сеанса, команда --all-users не является обязательной. Если вы копируете клонированную среду за пределы папки ~\Python\envs по умолчанию, введите полный путь к среде.

    Примечание:

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

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

  9. Начните новый сеанс или выйдите из команды Wine с помощью exit().

    Примечание:

    Скрипты startserver и stopserver находятся в каталоге scripts вашей установки ArcGIS Server.

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

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

Выполните следующие действия, чтобы создать среду для одного сервиса геообработки.

  1. Войдите в свой компьютер ArcGIS Server под учетной записью ArcGIS Server или учетной записью, у которой есть доступ к стандартной среде Python и каталогу назначения для клонированной среды.

  2. Запустите Wine explorer, чтобы подготовиться к клонированию стандартной среды.

  3. Запустите следующую команду:

    source <install>/framework/etc/arcenv
    wine cmd  
    
  4. После активации 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.

  5. Активируйте клонированную среду, запустив activate <path to cloned environment> в команде Wine.

  6. Установите пользовательские пакеты в активированную клонированную среду в команде Wine.

    Примечание:

    Большинство пакетов пакет Python сторонних производителей будут работать, однако если пакет выполняет вызовы WIN32 (прямо или косвенно взаимодействуя с ОС Windows), то эти пакеты не будут функционировать должным образом даже при успешной настройке.

    Следующая команда является примером установки пакета Python flask.

    conda install flask   
    
  7. Когда все пакеты установлены, перейдите в директорию администратора ArcGIS Server и нажмите на ресурс Сервисы.

  8. Выберите сервис геообработки, для которого вы желаете настроить среду Python.

  9. В разделе Поддерживаемые операции внизу этой страницы щелкните редактировать.

  10. В сервисе 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": []
    }
    
  11. Щелкните кнопку Сохранить изменения, чтобы сохранить новый параметр.

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

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

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

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

  1. Войдите в свой компьютер ArcGIS Server под учетной записью ArcGIS Server или учетной записью, у которой есть доступ к клонированной среде и установке сервера.

  2. Запустите команду Wine и измените каталог на <install>\server\framework\runtime\ArcGIS\bin\Python\Scripts.

  3. Обновляйте среду, используя либо conda proup -n <environment name>, либо conda proup -p <environment directory path>.

  4. После обновления среды Python перезапустите все сервисы геообработки, используемые этой средой conda, или перезапустите сервис ArcGIS Server.

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

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

Чтобы развернуть сторонние пакеты Python с ArcGIS Server для всех сервисов геообработки, выполните следующие действия на каждом компьютере вашего сайта. Обратите внимание, что это также изменит среду Python ваших системных сервисов геообработки.

  1. Войдите на компьютер с ArcGIS Server и откройте окно командной строки от имени администратора.

    Примечание:

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

  2. Измените директорию на <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.

  3. Клонируйте стандартную среду 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`
      
  4. Запустите 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.

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

    Примечание:

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

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

    Примечание:

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

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

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

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

  1. Войдите в свой компьютер ArcGIS Server. Вам могут понадобиться права администратора — в зависимости от местоположения вашей среды 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 сервера с новым именем среды, используя либо 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`
      
  3. Активируйте новую среду в окне командной строки с помощью activate <new environment name>. Если вы используете каталог за пределами директории среды Python установки ArcGIS Server, укажите полный путь к клонированной среде с помощью activate <fullpath>\<new environment name>.

  4. Установите пакеты на Python с conda install packagename=version.

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

  5. Когда все пакеты установлены, перейдите в директорию администратора ArcGIS Server и щелкните сервисы в разделе Ресурсы.

  6. Выберите сервис геообработки, для которого вы желаете настроить среду Python.

  7. В разделе Поддерживаемые операции щелкните редактировать внизу страницы.

  8. В сервисе 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": []
    }
    
  9. Щелкните кнопку Сохранить изменения, чтобы сохранить новый параметр.

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

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

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

  1. Войдите на компьютер с ArcGIS Server и откройте окно командной строки от имени администратора.

  2. Измените директорию на <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts.

  3. Обновляйте среду, используя либо conda proup -n <environment name>, либо conda proup -p <environment directory path>.

  4. После обновления среды Python перезапустите все сервисы геообработки, используемые этой средой conda, или перезапустите сервис ArcGIS Server.

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