Skip To Content

Linux 上 ArcGIS Server 的 Python 3 运行时

ArcGIS Server 提供了针对命令行 ArcPy 脚本使用 Python 3 运行时的选项。 Python 3.x 已随 ArcGIS Server 安装,但您可以安装单独的 Python 3 运行时包,此运行时包可简化通过 ArcGIS Server 使用 Python 3 的操作。

入门

Python 提供了第三方库,以供您在 ArcGIS 中使用,但是管理安装哪些软件包却是一项复杂费时的任务,特别是在使用多个工程或者尝试与他人共享代码时尤为如此。 要简化 ArcGIS Server for LinuxPython 3 运行时的使用,请使用 conda 或者 Miniconda 下载并安装 arcgis-server-py3 包。 ArcGIS Server for Linux 上的 Python 3 运行时需要 64 位安装程序。

如果您还没有 conda 或 Miniconda,则可从 Anaconda 网站进行下载。

在终端中,当在 ArcGIS Server for Linux 上为 Python 3 运行时激活 conda 环境时,将 ARCGISHOME 变量设置为 ArcGIS Server 的安装目录:export ARCGISHOME=/path/to/arcgis/server

若要访问 ArcGIS Python 功能,包括 ArcPy,可以安装 arcgis-server-py3 软件包。 在 conda 环境中,请使用以下命令在 ArcGIS Server for Linux 上安装 Python 3 运行时:

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

<ArcGIS Server version> 值将指示库的当前版本,该版本与您的 ArcGIS Server 当前版本相同,格式为 n.n.n,例如,ArcGIS Server 11.1,请使用以下内容:

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 包,当运行在 ArcGIS Server 安装目录中安装到 path/to/arcgis/server/framework/runtime/ArcGIS/bin/Python/envs/arcgispro-py3/python.exe 文件时,必须调用 Wine

迁移

Python 3 运行时在 ArcGIS Server 上的使用方式与 Python 2 在 ArcGIS Server 上的使用方式不同。 需要适应 ArcPy 中的两个主要差异以及 Python 版本的变更。

ArcPy 中的功能所做的更改

对于 ArcGIS Server,许多地理处理工具将继续在 Python 3 运行时中可用,然而,有一些将无法使用。 不包含 Parcel Fabric (ArcMap)、Schematics 以及 Tracking Analyst 工具箱中的工具。 其他工具箱中的其他工具也不可用。 有关受支持地理处理工具的完整列表,请参阅 arcgis-server-py3 软件包中的 readme 文件。

arcpy.mapping 模块已被移除,并且已经在 ArcGIS Pro 中替换为 arcpy.mp 模块。 arcpy.na 模块同样包含更改,多个更改与从 arcpy.mappingarcpy.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 脚本可能不需要任何更改,也可以正常运行。


在本主题中
  1. 入门
  2. 迁移