Как правильно вызвать скрипт Python 3 из окна синтаксиса SPSS с помощью команды SCRIPT (+ дополнительные проблемы во время выполнения) - PullRequest
1 голос
/ 27 марта 2020

Я хотел бы запустить два Python 3 скрипта из окна синтаксиса SPSS. Это можно выполнить с помощью блока BEGIN PROGRAM-END PROGRAM. или команды SCRIPT. На этот раз мне нужно найти решение, используя вторую команду.

Упрощенный код:

*** MACROS.
define export_tabs (!positional !tokens (1))

  output modify
  /select logs headings texts warnings pagetitles outlineheaders notes
  /deleteobject delete = yes.

  OUTPUT EXPORT
  /CONTENTS EXPORT = visible  LAYERS = printsetting  MODELVIEWS = printsetting
  /XLSX  DOCUMENTFILE = "doc.xlsx"
  OPERATION = createsheet
  sheet = !quote(!unquote(!1))
  LOCATION = lastcolumn NOTESCAPTIONS = no

!enddefine.

define matrix_tab (!positional !charend('/')
  /!positional !charend('/')
  /!positional !charend('/')
  /!positional !charend('/')
  /stat = !tokens (1))

  !do !i !in (!3)

  ctables
  /mrsets countduplicates = no
  /vlabels variables = !concat(!1,_,!2,_,!i) display = label
  /table !concat(!1,_,!2,_,!i)
  [rowpct.responses.count !concat(!unquote(!stat),"40.0"), totals[count f40.0]]
  /slabels position = column visible = no
  /clabels rowlabels = opposite
  /categories variables = !concat(!1,_,!2,_,!i) order = a key = value
  empty = include total = yes label = "VALID COUNT" position = after
  /titles title = !upcase(!4).

  !doend

!enddefine.

*** REPORT.
* Sheet 1.
output close all.
matrix_tab $Q1 / 1 / 1 2 / "QUESTION 1" / stat="pct".

script "C:\path\script 1.py".
script "C:\path\script 2.py".

export_tabs "Q1".

* Sheet 2.
output close all.
matrix_tab $Q2 / 2 / 3 4 / "QUESTION 2" / stat="pct".

script "C:\path\script 1.py".
script "C:\path\script 2.py".

export_tabs "Q2".

Когда я запускаю блок для первого листа, все работает нормально. Однако, когда я запускаю блок для второго листа, SPSS не выполняет сценарии Python и сразу переходит к макросу export_tabs (проблемы с синхронизацией?). Я подумал, что проблема, возможно, была в том, как я выполнил команду SCRIPT. Поэтому я попробовал это:

script "C:\path\script 1.py" pythonversion = 3.
script "C:\path\script 2.py" pythonversion = 3.

, но в действительности SPSS - даже если окно синтаксиса окрасило эти части синтаксиса - вернул это сообщение об ошибке:

>Error # 3251 in column 152.  Text: pythonversion 
>The SCRIPT command contains unrecognized text following the the file 
>specification.  The optional parameter must be a quoted string enclosed in 
>parentheses. 
>Execution of this command stops.

Кто-нибудь из вас имел такое проблема и / или есть идея, почему это происходит?

ПРИМЕЧАНИЕ: Оба сценария Python работают без проблем из оболочки Python 3.4.3, установленной с версией SPSS, которая у меня есть, поэтому я не думаю, что суть проблемы заключается в этих кодах.

...