使用 Python 的 JSL 腳本在 JMP 18 中不再運作我們正在將工具鏈移植到 JMP 18 中。 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 中有其他 jsl 範例,其中 include 有效(沒有 python)或 python 有效(沒有 include),但是當我嵌套 jsls 相互調用時,兩者的組合似乎在 JMP 18 中對我不起作用。
有什麼提示/想法可能會從 JMP 17 更改為 JMP 18 從而破壞我的腳本嗎?有人跟我有同樣的問題嗎?
自動化和腳本編寫回覆:使用 Python 的 JSL 腳本在 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"