在Qlik Sense load脚本中执行python脚本
我正在尝试在Qlik Sense应用程序的加载脚本中运行python脚本 我知道我需要将在Qlik Sense load脚本中执行python脚本,python,qliksense,Python,Qliksense,我正在尝试在Qlik Sense应用程序的加载脚本中运行python脚本 我知道我需要将OverrideScriptSecurity=1放入Settings.ini 我把 在qlik的意义上,我并没有得到任何错误,但脚本并没有被执行(我想),因为在脚本中我有 f = open("file.xml", "wb") f.write(xml) f.close 并且文件未保存 若我从终端运行脚本,那个么脚本将正确执行 会出什么问题 顺便说一下,我的python解释器的完整路径是 C:\Users\Ma
OverrideScriptSecurity=1
放入Settings.ini
我把
在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脚本,可以正确生成结果文件 my
settings.ini的内容
[Settings 7]
StandardReload=0
OverrideScriptSecurity=1
根据Qlik的文档,末尾应该有一条空行(从第4点开始)我找出了问题所在。
对于所有其他可能存在类似问题的情况:
问题在于路径中的空间。
如果我在c:\Windows\getSolution.py中移动脚本,它就会工作。我还需要将python路径更改为c:\Windows\py.exe
因此,结束脚本看起来像:
Execute c:\Windows\py.exe c:\Windows\getSolution.py 100 'bla';
但我仍然需要弄清楚如何使用路径中的空间…我能够在qlik意义下使用以下内容:
set vPyExe = C:\Program Files\Python37\python.exe;
set vPyScript = D:\...\PythonScript.py;
Execute
"$(vPyExe)" "$(vSource)"
;
尝试在路径周围加上双引号:Execute“$(vPythonPath)”“$(vPythonFile)”代码>。我对Qlik Sense不是非常熟悉,所以这只是一个暗中操作。
set vPyExe = C:\Program Files\Python37\python.exe;
set vPyScript = D:\...\PythonScript.py;
Execute
"$(vPyExe)" "$(vSource)"
;