Stiamo portando la nostra toolchain in JMP 18. Poiché molte delle chiamate Python di JMP sono state deprecate/modificate in JMP 18 e stiamo utilizzando elementi di Python, sto cercando di risolvere alcuni dei nostri script che funzionano bene in JMP 17 ma generano errori quando li eseguo su JMP18.
La risoluzione dei problemi nel forum qui è un po' difficile poiché non posso condividere l'esatto contenuto dei nostri script per motivi di riservatezza, ma mi sembra che il problema principale sia causato quando chiamo una funzione dall'esterno di un altro jsl
Include("./../Functions/doSomeThing.jsl");e nello script che chiama o nella funzione stessa è contenuto del codice che chiama Python come, ad esempio,
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...
]\"
);I messaggi di errore mi fanno pensare che JMP 18 si confonda quando si lavora in Python e si hanno anche funzioni JSL come questa
myFunction = Function({Input, otherInput},
Result = blablabla;
Return(Result);
);in particolare se la funzione non è nello stesso jsl, ma viene chiamata da include() o per qualche motivo, jsl non riconosce più l'include.
Ho altri esempi jsl in JMP18 in cui funziona l'inclusione (senza Python) o funziona Python (senza include), ma la combinazione di entrambi non sembra funzionare per me in JMP 18 quando ho annidato i jsl che si chiamano a vicenda.
Qualche suggerimento/idea su cosa potrebbe essere cambiato da JMP 17 a JMP 18 che sta interrompendo i miei script? Qualcuno ha i miei stessi problemi?
Non sono in grado di replicare il problema data la descrizione sopra. Puoi creare una coppia di script JSL/Python che dimostrino il tuo problema. Qui sono inclusi i miei tentativi di ricreare in base alla tua descrizione.
nidificato_parent.jsl
// nested_parent.jsl
Names Default to Here(1);
Include("./JSL_Functions/nested.jsl");
print( "My Version: " || myVersion() );
JSL_Functions/nested.jsl
// nested.jsl
Names Default to Here(1);
myVersion = Function({}, {},
Python Execute ({}, {v}, "\[
import jmp
v = jmp.__version__
]\");
Return(v);
);
L'esecuzione di nested_parent.jsl restituisce il seguente output.
/*:
//:*/
// 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"