在 ArcGIS Enterprise 10.5 和更高版本中,ArcGIS Server 包含一个基于Python 3 的 conda 环境。
ArcGIS Server 的 Python 安装还包括其他包,如 numpy 和 matplotlib。 但是,如果您希望安装其他自定义 Python 包,请按照以下步骤操作。
从 ArcGIS Pro 发布的服务
与 ArcGIS Pro 相似,ArcGIS Server 使用 conda 来管理 Python 环境。 从 ArcGIS Server 10.7.1 开始,您可以为所有地理处理服务指定 Python 环境。 从 ArcGIS Server 10.8.1 开始,您可以为单个地理处理服务指定 Python 环境。
以下步骤适用于从 ArcGIS Pro 发布的或使用 ArcPy 发布的地理处理服务。 有关 ArcGIS Pro 中 Python 环境的详细信息,请参阅 ArcGIS Pro 中的 Python。 建议您克隆默认 Python 环境以进行更新。 一次只能激活一个 ArcGIS Server 的 Python 环境。
有关使用 conda 的其他信息,请参阅 conda 简介。
为所有地理处理服务指定 Python 环境
要将第三方 Python 包与 ArcGIS Server 一起部署,请对您站点中的每台计算机使用以下步骤:
- 登录到 ArcGIS Server 计算机,然后以管理员身份打开命令提示符窗口。
- 将目录更改为 <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts。
- 使用新的环境名称克隆服务器的默认 Python 环境。 建议将其放置在 ArcGIS Server 安装的 Python 环境目录中。 使用示例 newenvname 运行命令 conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts。 将前缀替换为您的安装目录和新的环境名称。 或者,您可以指定安装目录之外的位置。
- 要激活克隆环境,请运行 conda proswap -n newenvname --all-users。 如果您以 ArcGIS Server 帐户用户的身份登录到计算机上,则可以选择提供 --all-users 参数;否则,它是必需参数。 如果您的克隆 conda 环境位于建议的位置之外,请使用 conda proswap -p "<full-path-to-cloned-directory>" --all-users 提供该位置的完整路径
- 通过运行 conda install 来安装第三方 Python 软件包。 如果 conda install 不可用,则仅可使用 pip install。
- 重新启动 ArcGIS Server 服务。 所有服务重新返回在线状态需要一些时间。
- 对于多机部署,请在 ArcGIS Server 站点中的所有其他计算机上重复步骤 1 至 6。
添加更多包
要将更多包添加到现有 conda 环境,请按照下列步骤操作:
- 登录到 ArcGIS Server 计算机。 根据现有 conda 环境的位置,可能需要管理权限。
- 从开始菜单中打开 Python 3 命令提示符。 该提示符可能在 ArcGIS Server 文件夹中,具体取决于您的操作系统。 如果它在开始菜单中不可用,则可以在 <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts 位置启动 proenv.bat。
- 针对需要部署的软件包,运行 conda install。 如果 conda install 不可用,则仅可使用 pip install。
- 在 ArcGIS Server Manager 中重新启动地理处理服务。
- 或者,重新启动 ArcGIS Server 服务。 所有服务将在几分钟内重新启动。
- 如果您具有多机部署,请在 ArcGIS Server 站点中的每台计算机上重复步骤 1 至 5。
为单个地理处理服务指定 Python 环境
克隆服务器默认的 Python 环境,安装第三方 Python 包,并使用以下步骤编辑地理处理服务的服务属性:
- 登录到您的 ArcGIS Server 计算机,然后从开始菜单打开 Python 3 命令提示符。 建议您以管理员身份运行该命令提示符,否则可能无法将环境克隆到某些目录。
- 使用命令 conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts 在 ArcGIS Server 安装程序的 Python 环境目录中以新环境名称(例如 newenvname)克隆服务器的默认 Python 环境。 将前缀替换为您的安装目录和新的环境名称。 要将环境克隆到 ArcGIS Server 安装目录之外的任何其他目录,请运行 conda create --clone arcgispro-py3 --prefix "<fullpath>\outsideenvname" --pinned --no-shortcuts。
- 使用 activate newenvname 在命令提示符窗口中激活新环境。 如果您使用的是 ArcGIS Server 安装程序的 Python 环境目录之外的目录,请使用 activate <fullpath>\outsideenvname 提供克隆环境的完整路径。
- 使用 conda install packagename=version 安装 Python 包。 可供选择的最佳做法是,将发布过程中在 ArcGIS Pro 中使用的包版本与服务器上安装的包版本保持一致。
- 所有包安装完成后,请转至 ArcGIS Server 管理员目录。 在页面底部的资源中,转至服务。
- 选择要为其指定 Python 环境的地理处理服务。
- 在位于页面底部的受支持的操作中,单击编辑。
- 在服务 JSON 中,当您的克隆环境位于 ArcGIS Server 安装程序的 Python 环境目录中时,请将键值对 "condaEnvironmentPath": "newenvname" 或 "condaEnvironmentPath": "<full path to newenvname>" 添加到服务属性中。 如果您使用的是 ArcGIS Server 安装程序的 Python 环境目录之外的目录,则必须提供克隆环境的完整路径。 包含新 condaEnvironmentPath 属性的简化服务属性 JSON 如下所示。
为 ArcGIS Server 部署自定义 Python 包 Simplified service properties with a cloned Python environment in the ArcGIS Server installation's Python environment directory.
{ "serviceName": "gvonly", "type": "GPServer", "description": "", "allowedUploadFileTypes": "", "properties": { "toolbox": "C:\\arcgisserver\\directories\\arcgissystem\\arcgisinput\\gvonly.GPServer\\extracted\\p30\\gvonly.tbx", "condaEnvironmentPath": "newenvname", "showMessages": "INFO" }, "portalProperties": { "isHosted": false, "portalItems": [{ "itemID": "4921223df97744a593d0b776666b9da9", "type": "GPServer" }] }, "extensions": [{ "typeName": "WPSServer", "properties": { "serviceType": "", "name": "" } }], "frameworkProperties": {}, "datasets": [] }
- 单击保存编辑内容按钮以保存编辑内容。
您的服务会自动重新启动。