SPSS Python 自定义扩展命令调试
SPSS Python Custom Extension Command Debugging
我在 Python 中创建了自定义扩展命令。我安装了它,但正如预期的那样,我收到错误(引用自 SPSS 日志输出 - 我知道在 SPSS 中调试 Python 程序的唯一方法):
Extension command TEST_EXTENSION could not be loaded. The module or a module that it requires may be missing, or there may be syntax errors in it.
错误可能来自 .xml
或 Run(args)
函数。我正在实施的 CustomFunction()
已经过全面测试。
调试这个错误和其他潜在错误的好习惯是什么?官方IBM-SPSS-Statistics-Extension-Command对
说
set the
SPSS_EXTENSIONS_RAISE
environment variable to "true"
但我不知道该怎么做,无论错误来源如何,这都不会起作用。
@horace
您通过控制面板 > 系统 > 高级系统设置 > 环境变量在 Windows 上设置了环境变量。确切的措辞因不同的 Windows 版本而异。我通常选择系统变量,尽管通常都可以。之后您需要重新启动 Statistics。设置此变量后,Python 代码中的错误将产生回溯。回溯通常被禁止,因为它对用户没有用,但对开发人员很有帮助。
回溯仅针对 Python 代码中的错误出现。您报告的 "could not be loaded" 错误发生在 Python 获得控制权之前,因此不会产生回溯。此错误有两个常见原因。首先是 Statistics 找不到定义扩展命令的 xml 文件或相应的 Python 模块。扩展命令定义在 Statistics 启动时或通过 运行ning EXTENSION 命令加载。执行 SHOW EXT。从语法编辑器中查看 Statistics 查找扩展文件的位置。
第二个原因是Python代码中的语法错误。 运行
开始程序。
导入你的模块
结束程序。
查看是否报告任何错误。
更一般地说,有两种有用的调试策略。第一个是 运行 外部模式下的代码,您 运行 来自 Python 的代码。这样您就可以使用 IDE 或普通的 Python 调试器逐步执行代码。有关详细信息,请参阅可编程性文档。在外部模式下可以做的事情有一些限制,但这通常是一个很好的解决方案。
第二种是使用支持远程调试的IDE。我使用 Wing IDE,但还有其他 IDE 可以做到这一点。这让我可以从 Statistics 中跳转到调试器,单步执行 Python 代码,并在调试器中执行您想要的所有其他操作。
HTh
我在 Python 中创建了自定义扩展命令。我安装了它,但正如预期的那样,我收到错误(引用自 SPSS 日志输出 - 我知道在 SPSS 中调试 Python 程序的唯一方法):
Extension command TEST_EXTENSION could not be loaded. The module or a module that it requires may be missing, or there may be syntax errors in it.
错误可能来自 .xml
或 Run(args)
函数。我正在实施的 CustomFunction()
已经过全面测试。
调试这个错误和其他潜在错误的好习惯是什么?官方IBM-SPSS-Statistics-Extension-Command对
说set the SPSS_EXTENSIONS_RAISE environment variable to "true"
但我不知道该怎么做,无论错误来源如何,这都不会起作用。
@horace
您通过控制面板 > 系统 > 高级系统设置 > 环境变量在 Windows 上设置了环境变量。确切的措辞因不同的 Windows 版本而异。我通常选择系统变量,尽管通常都可以。之后您需要重新启动 Statistics。设置此变量后,Python 代码中的错误将产生回溯。回溯通常被禁止,因为它对用户没有用,但对开发人员很有帮助。
回溯仅针对 Python 代码中的错误出现。您报告的 "could not be loaded" 错误发生在 Python 获得控制权之前,因此不会产生回溯。此错误有两个常见原因。首先是 Statistics 找不到定义扩展命令的 xml 文件或相应的 Python 模块。扩展命令定义在 Statistics 启动时或通过 运行ning EXTENSION 命令加载。执行 SHOW EXT。从语法编辑器中查看 Statistics 查找扩展文件的位置。
第二个原因是Python代码中的语法错误。 运行
开始程序。
导入你的模块
结束程序。
查看是否报告任何错误。
更一般地说,有两种有用的调试策略。第一个是 运行 外部模式下的代码,您 运行 来自 Python 的代码。这样您就可以使用 IDE 或普通的 Python 调试器逐步执行代码。有关详细信息,请参阅可编程性文档。在外部模式下可以做的事情有一些限制,但这通常是一个很好的解决方案。
第二种是使用支持远程调试的IDE。我使用 Wing IDE,但还有其他 IDE 可以做到这一点。这让我可以从 Statistics 中跳转到调试器,单步执行 Python 代码,并在调试器中执行您想要的所有其他操作。
HTh