cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
Feli
Level IV

JSL Script using Python not working anymore in JMP 18

 We are in the process of porting our toolchain into JMP 18. Since many of the JMP python calls have been deprecated/changed in JMP 18 and we are using elements of python, I'm trying to troubleshoot some scripts of ours that are working fine in JMP 17 but are throwing errors when I run them on JMP18.

The problem solving in the forum here is a bit difficult since I cannot share the exact content of our scripts due to confidentiality but it seems to me that the main problem is caused when I am calling a function from outside another jsl

Include("./../Functions/doSomeThing.jsl");

and either in the script calling or the function itself is contained some code calling Python like, e.g.,

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")

doing stuff... ]\" );

The error messages make me think that either JMP 18 gets confused when working in Python and having JSL functions like this as well

myFunction = Function({Input, otherInput},
	Result = blablabla;
	Return(Result);	
);

in particular if the function is not in the same jsl, but called by the include() or for some reason, the jsl does not recognize the include anymore.

I have other jsl examples in JMP18 where the include works (without python) or the python works (without an include), but the combination of both does not seem to work for me in JMP 18 when I have nested jsls calling each other.

Any hints/ideas what might have changed from JMP 17 to JMP 18 that is breaking my scripts? Anybody having the same issues like me?

 

 

2 REPLIES 2

Re: JSL Script using Python not working anymore in JMP 18

@Feli - Hi!  I'd suggest reaching out to tech support (support@jmp.com) on this one.  

Re: JSL Script using Python not working anymore in JMP 18

I am not able to replicate the issue given the description above.  Can you create a pair of JSL / Python scripts that demonstrates your problem.  Included here are my attempts to recreate based on your 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);
);

Running nested_parent.jsl results in the following 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"