从Python快速导入自定义SPSS命令

时间:2016-03-11 09:17:41

标签: python module macros spss

我编写了一个整洁的Python模块,其中包含一些自定义SPSS函数供我的同事使用。但是,要使用该功能,他们首先需要键入BEGIN PROGRAM。在实际调用函数之前导入模块等。因为他们中的大多数人都不懂技术,所以我希望能让事情变得更轻松。

现在他们必须输入这样的内容:

BEGIN PROGRAM.
import sys
sys.path.append("C:/Python scripts")
import mymodule
mymodule.custom_function('a','c')
END PROGRAM.

有没有办法可以编写一些SPSS-macro,它可以在一行中调用我的Python模块中的函数?像这样:

!mymodule.custom_function varlist=a,b

我尝试在宏体中定义一个普通的SPSS宏并写入BEGIN PROGRAM等,但这会产生错误。似乎宏体只能包含有效的SPSS语法而不包含python代码。

还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

有几种可能的解决方案。如果要自动加载一组标准的Python函数,可以创建启动脚本。它将命名为StartClient_.py并放在Statistics安装下的scripts目录中。每次启动统计信息时都会执行该操作。 (这可以使用STATS OPEN PROJECT扩展命令来推广,该命令在调用时可以执行很多操作,包括编写启动脚本。)

如果您只是希望用户能够在不面对任何Python代码或BEGIN / END程序的情况下运行Python函数,那么另一种解决方案是使用SPSSINC PROGRAM扩展命令(Utilities> Run Python Program)。它需要运行模块和函数以及您要指定的任何参数。

以下是一个例子: SPSSINC PROGRAM testpgm.mypgn x =年龄y =收入z = .05。

作为开发人员,要完成此工作,请参阅此命令的语法帮助。该命令加载模块并使用sys.argv将参数传递给您的代码。

如果你主要点击并点击用户,你可以创建一些自定义对话框来保存Python代码并让用户安装它们。