從 Run program() 執行 python exe我有一個 python 可執行文件(所以我或其他人不需要在電腦上安裝 python)它可以分析一些數據......
我想從 JMP 調用並運行它,但我不確定最好的方法,因為我希望能夠從 JMP 向這個 python exe 提供變量並獲得回報。
我已經使用集成的 python 命令成功地完成了這項工作,但從來沒有使用 python exe 文件。 我需要輸入的變量之一是數據表。 目前,我需要讓 JMP 將表保存為 .csv 的臨時位置,然後這個 python exe 可以運行並編輯該 .csv ...然後 JMP 可以打開更新的 CSV(我沒有那個流編碼在 JSL 中,因為我覺得必須有更好的方法)
有什麼想法嗎? 我對 Run Command() 的經驗很少,所以任何起始指針都將不勝感激:)
謝謝!
腳本編寫回复:從 Run program() 執行 python exe使用通過 RunProgram 從 Python 程序構建的可執行文件,或使用 RunProgram 中的 Python 腳本調用 Python 解釋器是類似的。 兩者都沒有使用集成 Python 所具有的集成。 您需要使用 CSV 文件之類的東西將數據發送到 Python 程序並從 Python 程序取回數據。 您還可以將命令行參數傳遞給 .exe。 (或到 python 解釋器。)
在您的情況下,我建議將 CSV 寫入 $temp 目錄並在 python 中打印結果。 通過命令行傳遞 csv 路徑。 使用 RunProgram(...readfunction("text")...) 檢索打印輸出的字符串。刪除臨時目錄文件。
回复:從 Run program() 執行 python exe我還沒有這樣做,目前無法在我的系統上輕鬆測試它,但看起來您可以從可執行文件的 stdout 讀取並使用 JSL 寫入可執行文件的 stdin 流: https://community.jmp.com/kvoqx44227/attachments/kvoqx44227/discovery-2016-content/67/1/Run%20Program.pdf
Python 可以從 stdin 讀取(並輸出到 stdout)作為類似文件的操作: Python - 標準輸入、標準輸出和標準錯誤 - AskPython
所以我有理由相信你可以“<<將”你的數據表逐行寫入 JMP 的可執行文件的標準輸入,使用類似文件的方法從 Python 中的 JMP 讀取行,將這些行構造成一個Pandas 數據幀,運行您的 Python 操作,然後將 Pandas 數據幀從 Python 逐行輸出到標準輸出,並將其反饋給 JMP。
回复:從 Run program() 執行 python exe@Michael_MXAK嗯,這也是一個有趣的想法。 對於較小的文件,它可能工作正常。 其中一些文件可能會變得相當大,因此逐行方法可能不會過於高效...... 不過,這是值得深思的。
Re: 從 Run program() 執行 python exe@Craige_Hales好的,這是有道理的......這就是我所傾向於的地方,但是將信息輸出到字符串中進行檢索比處理第二個 csv 更容易。