在 Qlik Sense 加载脚本中执行 python 脚本

Execute python script in Qlik Sense load script

我正在尝试 运行 python 在我的 Qlik Sense 应用程序加载脚本中编写脚本。

我知道我需要将 OverrideScriptSecurity=1 放入 Settings.ini

我放

Execute py lib://python/getSolution.py 100 'bla'; // 100 and 'bla' are parameters

而且我在 qlik 方面没有发现任何错误,但是脚本没有执行(我认为)因为在脚本中我有

f = open("file.xml", "wb")
f.write(xml)
f.close

并且文件未保存。

如果我从终端 运行 脚本,那么脚本会正确执行。

会出现什么问题?

顺便说一下,我 python 解释器的完整路径是

C:\Users\Marko Z\AppData\Local\Programs\Python\Python37-32\python.exe

编辑:

即使我加上这个

Set vPythonPath = "C:\Users\Marko Z\AppData\Local\Programs\Python\Python37-32\python.exe";
Set vPythonFile = "C:\Users\Marko Z\Documents\Qlik\Sense\....\getSolution.py";

Execute $(vPythonPath) $(vPythonFile);

我也有同样的行为。没有错误,但没有工作,... 我什至看到如果我更改路径(不正确的路径)它会给我一个错误,但不正确的文件不会给我一个错误....(但我确定它是正确的文件路径...)

我的python代码是

xml = "Marko"
xml = xml.encode('utf-8')
f = open("C:\Users\Marko Z\Test.xml", "wb")
f.write(xml)
f.close

奇怪。使用完全相同的 python 文件和 QS 脚本,可以正确生成结果文件。

我的内容settings.ini

[Settings 7]
StandardReload=0
OverrideScriptSecurity=1    

根据 Qlik 的文档,最后应该有一个空行lists 的第 4 点)

我弄清楚出了什么问题。 对于所有其他有类似问题的人:

问题出在路径 space 中。 如果我将我的脚本移动到 c:\Windows\getSolution.py 中,它就可以工作。我还需要将 python 路径更改为 c:\Windows\py.exe

所以结束脚本看起来像:

Execute c:\Windows\py.exe c:\Windows\getSolution.py 100 'bla';

但我仍然需要弄清楚如何在路径中使用 space...

我能够让以下内容在 qlik 意义上工作:

set vPyExe = C:\Program Files\Python37\python.exe;
set vPyScript = D:\...\PythonScript.py; 

Execute
"$(vPyExe)" "$(vSource)"
;