私たちはツールチェーンを 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 が include を認識しなくなった場合。
JMP18 には、インクルードが機能する (Python なし) か Python が機能する (インクルードなし) という他の jsl の例がありますが、ネストされた jsl が相互に呼び出している場合、JMP 18 では両方の組み合わせは機能しないようです。
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/ネストされた.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"
@Feli - こんにちは! この件については、テクニカル サポート ( support@jmp.com ) に問い合わせることをお勧めします。