Skip to main content

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

Эта тема не относится к ArcGIS Enterprise на Windows.

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

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

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

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

В терминале установите переменную ARCGISHOME на директорию установки ArcGIS Server при активации окружения conda для среды выполнения Python 3 на ArcGIS Server for Linux: export ARCGISHOME=/path/to/arcgis/server.

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

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

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

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

Чтобы проверить версию пакета arcgis-server-py3, используйте следующую команду:

conda list arcgis-server-py3

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

Если вы не устанавливаете пакет arcgis-server-py3, нужно вызывать Wine при запуске файла python.exe, установленного в path/to/arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/ в директории установки ArcGIS Server.

Перенос

То, как вы используете среду выполнения Python 3 с ArcGIS Server, отличается от ArcGIS Server на Python 2. Вы должны учитывать два основных различия: различия внутри ArcPy и изменение версий Python.

Изменения функциональности в 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

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

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

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

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

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