В ArcGIS Server доступна опция использования среды выполнения Python 3 для скриптов ArcPy, запускаемых из командной строки. Python 3.x устанавливается вместе с ArcGIS Server, но вы можете установить отдельный пакет среды выполнения Python 3, который упрощает использование Python 3 с ArcGIS Server.
Начало работы
Python предлагает сторонние библиотеки, которые вы можете использовать в ArcGIS, но принятие решения о том, какие из них следует установить, может оказаться непростой задачей, для решения которой требуется время, особенно при работе над несколькими проектами или при попытке поделиться кодом с коллегами. Чтобы упростить использование среды выполнения Python 3 на ArcGIS Server для Linux, используйте conda или Miniconda для загрузки и установки пакета arcgis-server-py3. Для среды выполнения Python 3 на ArcGIS Server для Linux необходим 64-битный инсталлятор.
Если у вас еще нет conda или Miniconda, его можно скачать его с веб-сайта Anaconda.
В терминале установите переменную ARCGISHOME на директорию установки ArcGIS Server при активации окружения conda для среды выполнения Python 3 на ArcGIS Server для Linux:export ARCGISHOME=/path/to/arcgis/server.
Чтобы получить доступ к функциональности ArcGIS Python, включая ArcPy, установите пакет arcgis-server-py3. В окружении conda используйте следующие команды для установки среды выполнения Python 3 на ArcGIS Server для 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 отличается от Python 2 ArcGIS Server. Вы должны учитывать два основных различия: различия внутри ArcPy и изменение версий Python.
Изменения функциональности в ArcPy
Большинство инструментов геообработки будут по-прежнему доступны в среде выполнения Python 3 для ArcGIS Server, но не все. Не будут доступны инструменты из наборов инструментов Набор данных участков (ArcMap), 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 могут корректно работать без всяких изменений.