從伺服器上的 JSL 腳本啟動 python 程式碼大家好,
在伺服器(沒有網路連線)中,我有一個 JSL 腳本,它在某個時刻呼叫 python 腳本(在虛擬環境中)。下面是呼叫 python 的 JSL 指令。 python 儲存在 F:\ 磁碟中。
strCommand = “Path\to\virutual_env\.venv\Scripts\activate.bat\!” && python \!“Path\to\python_script.py\!””;
Run Program( Executable( “cmd.exe” ), Options( “/C ” || strCommand ) );
- 如果我直接在伺服器命令提示字元下執行相同的命令(無論是否在管理員模式下):「Path\to\virutual_env\.venv\Scripts\activate.bat」 && python “Path\to\python_script.py\ ”,它作品
- 如果我在我的 PC 上運行此 JSL 程式碼,它也可以工作。
但是,如果我在伺服器上運行此 JSL 程式碼,它就不再起作用了。沒有運行python,但沒有錯誤訊息。
僅供參考:由於我沒有互聯網接入,對於python虛擬環境,我手動將包傳輸到伺服器並激活環境來讀取包。
有人有同樣的問題嗎?
自動化和腳本編寫回覆:從伺服器上的 JSL 腳本啟動 python 程式碼您的 PC 和伺服器上的路徑是否相同?它們的路徑中是否有空格(使用“運行程式”時引號可能存在一些問題)?開始將問題分解為更小的部分:
- 能正確訪問路徑嗎?
- 你能運行Python嗎?
- 可以啟動venv嗎?
- 等等
回覆:從伺服器上的 JSL 腳本啟動 python 程式碼你好,
非常感謝!事實上,問題是路徑中有空格
回覆:從伺服器上的 JSL 腳本啟動 python 程式碼你是如何解決這個問題的?您是否「修復」了檔案路徑或嘗試找出應如何為 JMP/命令列引用它以了解您要執行的操作?
回覆:從伺服器上的 JSL 腳本啟動 python 程式碼由於我必須進行快速修復,因此我首先刪除了路徑中的空格。我必須承認,之後我沒有再回到這個主題……但我正在與 JMP 支援人員進行討論。他們建議使用 JMP18 中的 Python,但它們不支援虛擬環境,因此您必須直接從它們安裝軟體套件版本。我的一些客戶目前「僅」使用 JMP 17,並且想要相同的東西。
回覆:從伺服器上的 JSL 腳本啟動 python 程式碼將報價傳遞到運行程式應用程式有一個選項。當我必須將引號傳遞給運行程式時,我使用了類似的方法,如果我沒記錯的話,還有一些其他方法。
回覆:從伺服器上的 JSL 腳本啟動 python 程式碼https://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328 ( 無法將語音標記「」解析為powershell using RunProgram )有解釋為什麼 Windows 命令列引用如此困難的連結。刪除路徑名中的空格是一個不錯的選擇。