Skip To Content

Среда выполнения Python 3 ArcGIS Server на Linux

В ArcGIS Server доступна опция использования среды выполнения Python 3 для скриптов ArcPy, запускаемых из командной строки. Инструменты выборки могут выполняться в среде выполнения Python 3.x, которая устанавливается независимо от ArcGIS Server.

Прежние версии:

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

Начало работы

Для начала работы вы можете использовать среду выполнения Python 3 на ArcGIS Server для Linux и conda для загрузки и установки пакета arcgis-server-py3.

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

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

Если у вас еще нет conda, его можно скачать его с веб-сайта Anaconda.

Чтобы сделать доступными функции ArcGIS Python, включая ArcPy, пакет arcgis-server-py3 можно установить непосредственно с сайта conda. В среде conda используйте следующую команду:

conda install -c esri arcgis-server-py3=<version>

Значение <version> указывает текущую версию библиотеки, которая совпадает с текущей версией ArcGIS Server, в формате n.n.n. Пример для ArcGIS Server 10.8:

conda install -c esri arcgis-server-py3=10.8.0

При установке пакета arcgis-server-py3 будет добавлен ArcPy, в том числе поддерживаемые инструменты геообработки и сторонние дополнения.

Переход

Использование среды выполнения Python 3 с ArcGIS Server отличается от использования Python 2 с ArcGIS Server и другими продуктами ArcGIS, включая ArcGIS Desktop. Есть два основных отличия, которые необходимо уладить: изменение Python с 2 на 3 и отличия внутри самой arcpy.

Изменения функциональности в ArcPy

Большинство инструментов геообработки будут доступны в среде выполнения Python 3 для ArcGIS Server, но не все. Не будут доступны инструменты в наборах инструментов Набор данных участков, Schematics и Tracking Analyst. Также не будут доступны дополнительные инструменты в других наборах инструментов. Полный список поддерживаемых инструментов геообработки см. в файле readme, который включен в пакет arcgis-server-py3.

Модуль arcpy.mapping был удален и заменен модулем arcpy.mp в ArcGIS Pro. Модуль arcpy.na также включает изменения, большая часть которых связана с переходом с arcpy.mapping на arcpy.mp.

Изменение версии Python

В среде выполнения Python ArcGIS Server используется Python 3.Это значительно отличается от других продуктов ArcGIS, в которых использовались и продолжают использоваться версии линейки Python 2. Линейка версий Python 3 несовместима с линейкой Python 2. Хотя принципиально большая часть языка осталась той же самой, многие ключевые детали существенно изменились, в том числе то, как работают строки и словари и то, как организована стандартная библиотека.

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

Ключевое решение заключается в том, будете ли вы обновлять код Python для работы как в Python 2, так и в Python 3. Если вы выполняете одностороннее преобразование кода из Python 2 в Python 3, то можно воспользоваться утилитой командной строки 2to3, которая может быть использована для автоматизации большей части процесса. Эта утилита доступна как в Python 2, так и в Python 3. Важно заметить, что, хотя утилита 2to3 и является превосходным инструментом, она не предоставляет полного, законченного решения (иногда полученный эффект оценивается в 95 процентов от полного решения), и могут потребоваться дополнительные изменения.

Отличным справочным материалом по переходу на Python 3 и по стратегиям переноса является руководство Леннарта Регебро Переход на Python 3, доступное на веб-сайте http://python3porting.com/. Можно писать скрипты, которые будут работать и в Python 2, и в Python 3.

Имейте в виду, что более простые скрипты Python могут корректно работать без всяких изменений.


В этом разделе
  1. Начало работы
  2. Переход