Nous sommes en train de porter notre chaîne d'outils dans JMP 18. Étant donné que de nombreux appels Python JMP 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 bien dans JMP 17 mais qui génèrent des erreurs lorsque je les exécute sur JMP18.
La résolution de problèmes dans le forum ici est un peu difficile car je ne peux pas partager le contenu exact de nos scripts en raison de la 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, il y a 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 JMP 18 est confus lorsqu'il travaille en Python et qu'il 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'include.
J'ai d'autres exemples de jsl dans JMP18 où l'include fonctionne (sans python) ou le python fonctionne (sans include), mais la combinaison des deux ne semble pas fonctionner pour moi dans JMP 18 lorsque j'ai des jsl imbriqués s'appelant les uns les autres.
Des conseils/idées sur ce qui aurait pu changer entre JMP 17 et JMP 18 et qui perturbe 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 illustrent votre problème. Vous trouverez ici 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() );
Fonctions JSL/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 génère 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"
@Feli - Salut ! Je vous suggère de contacter le support technique ( support@jmp.com ) à ce sujet.