ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 合约
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

调试脚本工具

  • 使用 print 语句
  • 使用调试程序

编码错误不可避免,但可通过两种基本的方法找出错误:

  • 将某种形式的 print 语句添加到代码中以便帮助隔离存在的问题。
  • 使用交互式调试程序。

使用 print 语句

通过 print 语句找出缺陷是一种显而易见的常规方法。由于脚本工具可以访问工具进度对话框,因此可以将脚本编辑为包含对 AddMessage()、AddWarning() 或 AddError() 的调用,以便将值和检查点信息送入进度对话框。另一种方法是使用返回消息这种独立方法,如 win32ui 模块的 MessageBox 方法。使用此方法时将显示一个弹出对话框。由于必须单击对话框中的确定才能继续执行操作,因此使用该方法可按步骤执行脚本。下方是使用两种方法的示例:

import arcpy
import win32ui
import win32con

n = 5

# Print message to progress dialog
#
arcpy.AddMessage("Value of n = {}".format(n))

# Issue a popup dialog with OK and Cancel button
#
val = win32ui.MessageBox("Value of n = {}".format(n), "title",
                         win32con.MB_OKCANCEL)

# Based on the button clicked, you can branch execution
#
if val == 1:
    arcpy.AddMessage("You clicked OK")
else:
    arcpy.AddError("You clicked Cancel")
    raise arcpy.ExecuteError, "Execution stops due to Cancel button click"

arcpy.AddMessage("This statement reached")

使用调试程序

另一种方法是使用支持调试的 Python 集成开发环境 (IDE)。通过调试程序可在无需修改代码的条件下,设置中断点;进入、跳出以及越过各行代码;检查变量的内容。与插入 print 语句相比,调试程序更高效且通常可快速地隔离缺陷。

普通 IDE 包括以下内容:

  • 随 Python 安装的 Python IDE
  • PythonWin,获取网址为 https://sourceforge.net/projects/pywin32
  • PyScripter,获取网址为 http://code.google.com/p/pyscripter
  • 商用系统,如 Wing IDE (http://wingware.com)

使用调试程序的一种方式是在 IDE 中直接打开脚本,修改该脚本以使所有参数均已赋值,然后继续调试。如果情况简单,此方法非常适合。但如果脚本使用的是图层或表视图参数,则必须动态创建这些变量。复杂的参数(如字段映射或空间参考)很难创建为变量。

理想情况下,需要打开脚本工具对话框、输入参数然后为准备好要进行调试的代码启动 IDE。要实现上述目的,需要进行一些简单的更改(如下所示)。

使用 GetParameterAsText()

第一步是将脚本修改为使用 GetParameterAsText() 而非 sys.argv[],如了解脚本工具参数中所述。 此修改可以保留,稍后无需将代码更改回使用 sys.argv[]。

执行和调试工具

  1. 在地理处理 > 地理处理选项中设置调试程序(如 PythonWin)。
    提示:

    如果已安装 PythonWin 并将它用作调试程序,那么调试程序设置中的对应路径取决于安装位置,可能是 C:\Python27\ArcGIS10.2\Lib\site-packages\pythonwin\Pythonwin.exe。

  2. 在目录 窗口中,右键单击工具,然后单击调试。
  3. 在工具箱中打开脚本工具,输入任意要设置的参数,然后单击确定。打开 IDE 可能需要花费一些时间。脚本代码显示后,便可以像通常需要的那样与调试应用程序自由交互。
    注:

    调试程序设置要求脚本工具始终在前台运行。

您可以设置中断点从而使脚本只运行到该中断点,也可以使用调试程序中的所有其他可用选项。在对话框中输入的参数值可通过 GetParameterAsText() 获取。

运行脚本时,脚本与应用程序之间仍将发生通常会预料到的交互。因此,如果使用 AddMessage()、AddWarning() 或 AddError() 等函数,则信息会显示在应用程序中。如果使用进度条功能,则随着脚本的调试,进度条将在工具对话框中更新。完成脚本调试后,便可关闭调试程序以便返回应用程序。如果计划再次调试脚本工具,您也可以使调试程序保持打开状态并单击工具进度对话框中的取消。

相关主题

  • 嵌入脚本和密码保护工具
有关此主题的反馈?

ArcGIS for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明