比较自定义工具箱和 Python 工具箱

ArcGIS 9.0 中引入了脚本工具框架,该框架便于新用户创建基于 Python 的工具,但是,对于经验比较丰富的用户,其效率并不高。在脚本工具框架中,可执行以下操作:

  • 通过向导定义参数。
  • 创建处于工具箱中的验证代码。
  • 以及分别创建和维护源脚本。

所有这些部分都是分离的,而且很难进行集中管理。

在 ArcGIS 10.1 中,引入了创建基于 Python 工具的第二种方法,即 Python 工具箱。在 Python 工具箱中,参数定义、验证代码和源代码都通过 Python 代码进行处理,因而,Python 工具的创建和维护更加容易。

对于具有 Python 经验的用户,Python 工具箱使您可以充分利用所掌握的 Python 技能,完全基于 Python 来方便地创建工具。如果您是 Python 新手,则更适合在自定义工具箱中创建工具,在自定义工具箱中,向导会逐步引导您完成脚本工具的必要部分。

如果您已经或计划在脚本工具中使用重要验证代码,您肯定会发现使用 Python 工具箱更为简单。

组织

自定义工具箱Python 工具箱

自定义工具箱中的脚本工具被组织成以下三个部分:

  1. 通过向导定义的工具和参数定义。
  2. 对参数行为提供额外控制的可选验证代码,位于工具箱中。
  3. 源代码通常作为 Python 脚本与工具箱分开维护 (.py)。

Python 工具箱是一个具有 .pyt 扩展名的 Python 脚本,其包含工具箱及其工具的所有方面:参数、验证和执行。通过以下 Python 类实现:一个类用于工具箱,一个类用于各工具。

编辑

自定义工具箱Python 工具箱

可在任何编辑器中编辑源代码。

通过脚本工具向导编辑参数。

可以在脚本工具对话框中的验证选项卡中编辑验证代码(如果已用),或在单独的 Python 集成发展环境 (IDE) 中编辑。

可在任何编辑器中编辑 Python 工具箱文件 (.pyt),而且可在同一位置编辑工具的所有部分(参数定义、验证代码和源代码)。

由于只能在编辑器中编辑 Python 工具箱,它们不支持在工具箱内或工具箱之间进行复制/粘贴。

使用其他工具

自定义工具箱Python 工具箱

自定义工具箱支持各种工具类型,包括 Python 脚本工具和模型工具(使用 ModelBuilder 构建)。

Python 工具箱不直接支持其他工具类型;即,无法将模型工具或内置工具添加到 Python 工具箱中。但是,可在 Python 工具箱代码中调用其他工具箱的工具。

调试

自定义工具箱Python 工具箱

IDE 只能调试 Python 文件 (.py)。 对于脚本工具验证中的 Python 代码(嵌入到工具箱中),将代码复制到外部 Python 文件,并将 Python 工具箱中的代码替换为以下示例。 然后可以打开 IDE 中的 Python 文件并设置断点,将 IDE 附加到 ArcGIS Pro,之后运行脚本工具。 完成代码修改后,将 Python 文件内容复制回工具验证。

IDE 只能调试 Python 文件 (.py)。 对于 Python 工具箱文件中的代码 (.pyt),将代码复制到外部 Python 文件,然后将 Python 工具箱中的代码替换为以下示例。 然后可以打开 IDE 中的 Python 文件并设置断点,将 IDE 附加到 ArcGIS Pro,之后使用 Python 工具箱。 完成代码修改后,将 Python 文件内容复制回 Python 工具箱。

了解有关在 ArcGIS Pro 中调试 Python 的详细信息

附加安全性

自定义工具箱Python 工具箱

自定义工具箱中的脚本工具可以将其源代码嵌入工具箱中并使用密码进行保护。

可适当对 Python 工具箱 .pyt 文件进行加密并使用密码进行保护。