如果脚本工具运行 Python 脚本,则应该选中在进程中运行 Python 脚本选项,这样便可在进程中运行脚本,如下所示。此选项仅适用于 Python 脚本。
import arcpy
import win32com.client
gp = win32com.client.Dispatch("esriGeoprocessing.GpDispatch.1")
在进程中运行 Python 脚本选项在 ArcGIS 9.3 中已可用。对于 9.3 之前的版本,Python 脚本在进程外运行。在进程外运行需要 ArcGIS 启动另一个进程(可视为启动另一个程序),这需要花费一些时间。此外,如果在进程外运行,两个进程之间的消息通信还存在性能问题。从 9.3 版本开始,ArcGIS 融入了 Python,使脚本得以在进程中运行,从而省去了所有启动时间和信息传递的开销。
在进程中运行要求使用 Python 导入指令加载的所有模块均具有必要的逻辑,以使其在进程中运行。所有的标准 Python 库(例如 os、string 和 time)都包含必要的逻辑。但是,第三方处获得的非标准模块可能不包含要在进程中运行所需的必要逻辑。如果在脚本运行时遇到了费解的问题,请尝试取消选中进程内选项,然后再次运行脚本。如果在进程外运行时不存在该问题,则很可能是导入的某个模块存在问题。这种情况下,应将此选项保持在取消选中状态。