Nous sommes en train de porter notre chaîne d'outils dans JMP 18. Étant donné que de nombreux appels JMP python ont été obsolètes/modifiés dans JMP 18 et que nous utilisons des éléments de python, j'essaie de dépanner certains de nos scripts qui fonctionnent correctement. dans JMP 17 mais génèrent des erreurs lorsque je les exécute sur JMP18.
La résolution de problème dans le forum ici est un peu difficile puisque je ne peux pas partager le contenu exact de nos scripts pour des raisons de confidentialité mais il me semble que le problème principal est causé lorsque j'appelle une fonction depuis l'extérieur d'un autre jsl
Include("./../Functions/doSomeThing.jsl");et soit dans le script appelant, soit dans la fonction elle-même, contient du code appelant Python comme, par exemple,
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...
]\"
);Les messages d'erreur me font penser que soit JMP 18 est confus lorsqu'on travaille en Python et qu'on a également des fonctions JSL comme celle-ci.
myFunction = Function({Input, otherInput},
Result = blablabla;
Return(Result);
);en particulier si la fonction n'est pas dans le même jsl, mais appelée par include() ou pour une raison quelconque, le jsl ne reconnaît plus l'inclusion.
J'ai d'autres exemples de jsl dans JMP18 où l'inclusion fonctionne (sans python) ou le python fonctionne (sans inclusion), mais la combinaison des deux ne semble pas fonctionner pour moi dans JMP 18 lorsque j'ai des jsl imbriqués qui s'appellent.
Avez-vous des indices/idées sur ce qui aurait pu changer de JMP 17 à JMP 18 et qui interromprait mes scripts ? Quelqu'un a-t-il les mêmes problèmes que moi ?
Je ne suis pas en mesure de reproduire le problème compte tenu de la description ci-dessus. Pouvez-vous créer une paire de scripts JSL/Python qui illustre votre problème. Voici mes tentatives de recréation basées sur votre description.
nested_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’exécution de nested_parent.jsl entraîne le résultat suivant.
/*:
//:*/
// 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"