Skip To Content

为 ArcGIS Server 部署自定义 Python 包

ArcGIS Enterprise 10.5 和更高版本中,ArcGIS Server 包含一个基于Python 3 的 conda 环境。

ArcGIS ServerPython 安装还包括其他包,如 numpymatplotlib。 但是,如果您希望安装其他自定义 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 ProPython 环境的详细信息,请参阅 ArcGIS Pro 中的 Python。 建议您克隆默认 Python 环境以进行更新。 一次只能激活一个 ArcGIS ServerPython 环境。

有关使用 conda 的其他信息,请参阅 conda 简介

为所有地理处理服务指定 Python 环境

要将第三方 Python 包与 ArcGIS Server 一起部署,请对您站点中的每台计算机使用以下步骤:

  1. 登录到 ArcGIS Server 计算机,然后以管理员身份打开命令提示符窗口。
  2. 将目录更改为 <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts
  3. 使用新的环境名称克隆服务器的默认 Python 环境。 建议将其放置在 ArcGIS Server 安装的 Python 环境目录中。 使用示例 newenvname 运行命令 conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcuts。 将前缀替换为您的安装目录和新的环境名称。 或者,您可以指定安装目录之外的位置。
  4. 要激活克隆环境,请运行 conda proswap -n newenvname --all-users。 如果您以 ArcGIS Server 帐户用户的身份登录到计算机上,则可以选择提供 --all-users 参数;否则,它是必需参数。 如果您的克隆 conda 环境位于建议的位置之外,请使用 conda proswap -p "<full-path-to-cloned-directory>" --all-users 提供该位置的完整路径
  5. 通过运行 conda install 来安装第三方 Python 软件包。 如果 conda install 不可用,则仅可使用 pip install
  6. 重新启动 ArcGIS Server 服务。 所有服务重新返回在线状态需要一些时间。
  7. 对于多机部署,请在 ArcGIS Server 站点中的所有其他计算机上重复步骤 1 至 6。

添加更多包

要将更多包添加到现有 conda 环境,请按照下列步骤操作:

  1. 登录到 ArcGIS Server 计算机。 根据现有 conda 环境的位置,可能需要管理权限。
  2. 从开始菜单中打开 Python 3 命令提示符。 该提示符可能在 ArcGIS Server 文件夹中,具体取决于您的操作系统。 如果它在开始菜单中不可用,则可以在 <install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\Scripts 位置启动 proenv.bat
  3. 针对需要部署的软件包,运行 conda install。 如果 conda install 不可用,则仅可使用 pip install
  4. ArcGIS Server Manager重新启动地理处理服务
  5. 或者,重新启动 ArcGIS Server 服务。 所有服务将在几分钟内重新启动。
  6. 如果您具有多机部署,请在 ArcGIS Server 站点中的每台计算机上重复步骤 1 至 5。

为单个地理处理服务指定 Python 环境

克隆服务器默认的 Python 环境,安装第三方 Python 包,并使用以下步骤编辑地理处理服务的服务属性:

  1. 登录到您的 ArcGIS Server 计算机,然后从开始菜单打开 Python 3 命令提示符。 建议您以管理员身份运行该命令提示符,否则可能无法将环境克隆到某些目录。
  2. 使用命令 conda create --clone arcgispro-py3 --prefix "<install>\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\newenvname" --pinned --no-shortcutsArcGIS Server 安装程序的 Python 环境目录中以新环境名称(例如 newenvname)克隆服务器的默认 Python 环境。 将前缀替换为您的安装目录和新的环境名称。 要将环境克隆到 ArcGIS Server 安装目录之外的任何其他目录,请运行 conda create --clone arcgispro-py3 --prefix "<fullpath>\outsideenvname" --pinned --no-shortcuts
  3. 使用 activate newenvname 在命令提示符窗口中激活新环境。 如果您使用的是 ArcGIS Server 安装程序的 Python 环境目录之外的目录,请使用 activate <fullpath>\outsideenvname 提供克隆环境的完整路径。
  4. 使用 conda install packagename=version 安装 Python 包。 可供选择的最佳做法是,将发布过程中在 ArcGIS Pro 中使用的包版本与服务器上安装的包版本保持一致。
  5. 所有包安装完成后,请转至 ArcGIS Server 管理员目录。 在页面底部的资源中,转至服务
  6. 选择要为其指定 Python 环境的地理处理服务。
  7. 在位于页面底部的受支持的操作中,单击编辑
  8. 在服务 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": []
    }

  9. 单击保存编辑内容按钮以保存编辑内容。

您的服务会自动重新启动。