우리는 툴체인을 JMP 18로 포팅하는 중입니다. 많은 JMP Python 호출이 JMP 18에서 더 이상 사용되지 않거나 변경되었으며 Python 요소를 사용하고 있으므로 제대로 작동하는 일부 스크립트의 문제를 해결하려고 합니다. JMP 17에서는 JMP18에서 실행하면 오류가 발생합니다.
기밀성으로 인해 스크립트의 정확한 내용을 공유할 수 없기 때문에 여기 포럼에서 문제를 해결하는 것은 약간 어렵지만 다른 jsl 외부에서 함수를 호출할 때 주요 문제가 발생하는 것 같습니다.
Include("./../Functions/doSomeThing.jsl");스크립트 호출이나 함수 자체에는 다음과 같이 Python을 호출하는 일부 코드가 포함되어 있습니다.
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...
]\"
);오류 메시지를 보면 JMP 18이 Python에서 작업할 때나 이와 같은 JSL 기능을 사용할 때 혼란스러워진다고 생각됩니다.
myFunction = Function({Input, otherInput},
Result = blablabla;
Return(Result);
);특히 함수가 동일한 jsl에 없지만 include()에 의해 호출되거나 어떤 이유로 인해 jsl이 더 이상 포함을 인식하지 못하는 경우.
JMP18에는 포함이 작동하거나(파이썬 없이) Python이 작동하는(포함 없이) 다른 jsl 예제가 있지만 JMP 18에서는 서로 호출하는 중첩된 jsls가 있을 때 두 가지의 조합이 작동하지 않는 것 같습니다.
내 스크립트를 손상시키는 JMP 17에서 JMP 18로 변경되었을 수 있는 힌트/아이디어가 있나요? 나와 같은 문제를 겪고 있는 사람이 있나요?
위의 설명에 따라 문제를 재현할 수 없습니다. 문제를 보여주는 JSL/Python 스크립트 쌍을 만들 수 있습니까? 여기에는 귀하의 설명을 바탕으로 재현하려는 시도가 포함되어 있습니다.
중첩_부모.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);
);
Nested_parent.jsl을 실행하면 다음과 같은 결과가 출력됩니다.
/*:
//:*/
// 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"