Я хотел бы запустить два 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, которая у меня есть, поэтому я не думаю, что суть проблемы заключается в этих кодах.