Estoy tratando de ejecutar el script de Python dentro de mi script de carga en la aplicación Qlik Sense.

Sé que necesito poner OverrideScriptSecurity=1 en Settings.ini

Puse

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

Y no obtengo ningún error en el sentido qlik, pero el script no se ejecuta (creo) porque dentro del script tengo

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

Y el archivo no se guarda.

Si ejecuto el script desde la terminal, el script se ejecuta correctamente.

¿Qué podría salir mal?

Por cierto, mi camino completo a la intérprete de Python es

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

EDITAR:

Incluso si agrego esto

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);

Tengo el mismo comportamiento. Sin error, pero no funciona ... Incluso veo que si cambio la ruta (ruta incorrecta) me da un error, pero el archivo incorrecto no me da un error ... (pero estoy seguro de que es la ruta correcta del archivo ...)

Mi código de Python es

xml = "Marko"
xml = xml.encode('utf-8')
f = open("C:\\Users\\Marko Z\\Test.xml", "wb")
f.write(xml)
f.close
0
Marko Zadravec 26 feb. 2018 a las 19:52

3 respuestas

La mejor respuesta

Me doy cuenta de lo que estaba mal. Para todos los demás que tendrían problemas similares:

El problema está en el espacio en el camino. Si muevo mi script en c: \ Windows \ getSolution.py, funciona. También necesito cambiar la ruta de Python a c: \ Windows \ py.exe

Así que el script final se ve así:

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

Pero todavía necesito imaginar cómo trabajar con el espacio en el camino ...

1
Marko Zadravec 28 feb. 2018 a las 06:27

Pude hacer que lo siguiente funcione en sentido qlik:

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

Execute
"$(vPyExe)" "$(vSource)"
;
0
Dharman 20 ago. 2019 a las 19:02

Extraño. Con exactamente el mismo archivo de Python y secuencia de comandos QS, el archivo de resultados se genera correctamente.

El contenido de mi settings.ini.

[Settings 7]
StandardReload=0
OverrideScriptSecurity=1    

Según la documentación de Qlik, debe haber una línea vacía al final (punto 4 de listas)

0
Stefan Stoichev 27 feb. 2018 a las 18:56