在 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)"
;
我正在尝试 运行 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)"
;