【问题标题】:Quickly import custom SPSS commands from Python从 Python 快速导入自定义 SPSS 命令
【发布时间】:2016-06-26 11:07:07
【问题描述】:

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

现在他们必须输入如下内容:

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

有没有一种方法可以编写一些 SPSS 宏来在一行中调用我的 Python 模块中的函数?像这样:

!mymodule.custom_function varlist=a,b

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

还有其他解决方案吗?

【问题讨论】:

  • 您应该创建一个您的同事可以安装的扩展命令。 custom dialog box 也很简单。
  • 对您的问题的简短回答是否定的 - 您通常不能在宏中使用 BEGIN PROGRAM...END PROGRAM 块。

标签: python module macros spss


【解决方案1】:

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

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

这是一个例子: SPSSINC PROGRAM testpgm.mypgn x=age y = income z=.05.

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

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

【讨论】:

    猜你喜欢
    • 2015-08-20
    • 2015-07-23
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多