Stiamo trasferendo 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 correttamente 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 il contenuto esatto dei nostri script per motivi di riservatezza, ma mi sembra che il problema principale si verifichi quando chiamo una funzione dall'esterno di un altro jsl
Include("./../Functions/doSomeThing.jsl");e sia nello script che 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 lavora in Python e ha 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, il jsl non riconosce più include.
Ho altri esempi jsl in JMP18 in cui include funziona (senza python) o python funziona (senza include), ma la combinazione di entrambi non sembra funzionare per me in JMP 18 quando ho jsl annidati che si richiamano a vicenda.
Qualche suggerimento/idea su cosa potrebbe essere cambiato da JMP 17 a JMP 18 che sta rompendo i miei script? Qualcuno ha gli stessi problemi che ho io?
Non sono in grado di replicare il problema data la descrizione di cui sopra. Puoi creare una coppia di script JSL/Python che dimostri il tuo problema? Includo qui i miei tentativi di ricreare in base alla tua descrizione.
genitore_nidificato.jsl
// nested_parent.jsl
Names Default to Here(1);
Include("./JSL_Functions/nested.jsl");
print( "My Version: " || myVersion() );
Funzioni JSL/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 produce 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"
@Feli - Ciao! Ti suggerisco di contattare il supporto tecnico ( support@jmp.com ) per questo problema.