SPSS Python自定义扩展命令调试

时间:2016-08-22 16:16:03

标签: python debugging spss

我在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.

错误可能来自.xmlRun(args)函数。我正在实施的CustomFunction()已经过彻底测试。

调试这个以及其他潜在错误的好习惯是什么?官方IBM-SPSS-Statistics-Extension-Command

  

设置   SPSS_EXTENSIONS_RAISE   环境变量为" true"

但我不知道如何做到这一点,无论错误的来源如何,这都不会有效。

1 个答案:

答案 0 :(得分:1)

@horace

您可以通过控制面板>在Windows上设置环境变量。系统>高级系统设置>环境变量。确切的措辞因Windows版本的不同而异。我通常选择系统变量,尽管通常都可以使用。之后需要重启Statistics。设置此变量后,Python代码中的错误将产生回溯。回溯通常被抑制,因为它对用户没用,但它对开发人员非常有帮助。

只有Python代码中的错误才会出现回溯。 "无法加载"您报告的错误发生在Python获得控制之前,因此不会产生回溯。导致此错误的原因有两个。第一个是统计信息找不到定义扩展命令或相应Python模块的xml文件。扩展命令定义在统计信息启动时或通过运行EXTENSION命令加载。执行SHOW EXT。从语法编辑器中查看Statistics查找扩展文件的位置。

第二个原因是Python代码中的语法错误。运行
开始计划。
导入你的模块
结束计划。
查看是否有任何错误报告。

更一般地说,有两种有用的调试策略。第一种是在外部模式下运行代码,从中运行Python代码。这样您就可以使用IDE或普通的Python调试器逐步完成代码。有关详细信息,请参阅可编程性文档。在外部模式下可以做些什么有一些限制,但它通常是一个很好的解决方案。

第二种是使用支持远程调试的IDE。我使用Wing IDE,但还有其他IDE可以做到这一点。这让我可以从Statistics内部跳转到调试器,逐步执行Python代码,并在调试器中执行所需的所有其他操作。

HTH