Estamos en el proceso de trasladar nuestra cadena de herramientas a JMP 18. Dado que muchas de las llamadas de Python de JMP han quedado obsoletas o han sido modificadas en JMP 18 y estamos usando elementos de Python, estoy tratando de solucionar problemas con algunos scripts nuestros que funcionan bien en JMP 17 pero arrojan errores cuando los ejecuto en JMP18.
La resolución de problemas en el foro aquí es un poco difícil ya que no puedo compartir el contenido exacto de nuestros scripts debido a la confidencialidad, pero me parece que el problema principal se produce cuando estoy llamando a una función desde fuera de otro jsl.
Include("./../Functions/doSomeThing.jsl");y ya sea en el script que llama o en la función misma está contenido algún código que llama a Python como, por ejemplo,
Python Submit(
"\[
import scipy.signal
import numpy as _JMPnp
import scipy as _JMPsp
import pandas as _JMPpd
import sqlite3 as _JMPsq
print("Python Imports OK")<BR /><BR />doing stuff...
]\"
);Los mensajes de error me hacen pensar que JMP 18 se confunde al trabajar en Python y tener funciones JSL como esta también.
myFunction = Function({Input, otherInput},
Result = blablabla;
Return(Result);
);en particular si la función no está en el mismo jsl, pero es llamada por include() o por alguna razón, el jsl ya no reconoce el include.
Tengo otros ejemplos de jsl en JMP18 donde el include funciona (sin python) o el python funciona (sin un include), pero la combinación de ambos no parece funcionar para mí en JMP 18 cuando tengo jsl anidados que se llaman entre sí.
¿Alguna sugerencia o idea sobre qué podría haber cambiado de JMP 17 a JMP 18 que está dañando mis scripts? ¿Alguien tiene los mismos problemas que yo?
No puedo reproducir el problema según la descripción anterior. ¿Puede crear un par de scripts JSL/Python que demuestren su problema? Aquí se incluyen mis intentos de recrearlo según su descripción.
padre_anidado.jsl
// nested_parent.jsl
Names Default to Here(1);
Include("./JSL_Functions/nested.jsl");
print( "My Version: " || myVersion() );
Funciones JSL/nested.jsl
// nested.jsl
Names Default to Here(1);
myVersion = Function({}, {},
Python Execute ({}, {v}, "\[
import jmp
v = jmp.__version__
]\");
Return(v);
);
La ejecución de nested_parent.jsl da como resultado el siguiente resultado.
/*:
//:*/
// nested parent
Names Default to Here(1);
Include("./JSL_Functions/nested.jsl");
print( "My Version: " || myVersion() );
/*:
//:*/
import jmp
v = jmp.__version__
/*:
"My Version: 1.0.0"
@Feli - Hola. Te sugiero que te pongas en contacto con el servicio de asistencia técnica ( support@jmp.com ) para solucionar este problema.