サーバー上の JSL スクリプトから Python コードを起動するみなさんこんにちは
サーバー (インターネット接続なし) に、ある時点で Python スクリプト (仮想環境内) を呼び出す JSL スクリプトがあります。以下は、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\” が動作します。
- この JSL コードを自分の PC で実行しても動作します。
ただし、この JSL コードをサーバー上で実行すると、動作しなくなります。Python は実行されませんが、エラー メッセージは表示されません。
参考までに: インターネットにアクセスできないため、Python 仮想環境では、パッケージを手動でサーバーに転送し、環境をアクティブ化してパッケージを読み取りました。
同じ問題を抱えた人はいますか?
自動化とスクリプトRe: サーバー上の JSL スクリプトから Python コードを起動するPC とサーバーに同じパスがありますか? どちらかのパスにスペースが含まれていますか (プログラムの実行を使用するときに引用符に問題が発生する可能性があります)? 問題を小さな部分に分割し始めます。
- パスに正しくアクセスできますか?
- Python を実行できますか?
- venv をアクティブ化できますか?
- 等々
Re: サーバー上の JSL スクリプトから Python コードを起動するこんにちは、
ありがとうございます!実は、パスにスペースがあったのが問題だったんです
Re: サーバー上の JSL スクリプトから Python コードを起動するこの問題をどのように解決しましたか? ファイル パスを「修正」しましたか? または、JMP / コマンドラインで何をしようとしているのかを理解できるように、ファイル パスをどのように引用符で囲むべきかを調べましたか?
Re: サーバー上の JSL スクリプトから Python コードを起動する急いで修正する必要があったので、まずパスのスペースを削除しました。その後、この件については触れなかったことを認めなければなりませんが、JMP サポートと協議中です。JMP18 から Python を使用することを提案していますが、仮想環境をサポートしていないため、パッケージ バージョンを直接インストールする必要があります。また、現時点で JMP 17 のみを使用しているお客様もおり、同じことを望んでいます。引き続きお知らせします。
Re: サーバー上の JSL スクリプトから Python コードを起動するRun Program アプリケーションに引用符を渡すには、 1 つのオプションがあります。Run Program に引用符を渡す必要があったときに、同様のものを使用したことがありますが、正しく覚えていれば、他の方法もいくつかありました。
Re: サーバー上の JSL スクリプトから Python コードを起動するhttps://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328 ( 「RunProgram を使用して speechmarks "" を powershell に解析できません」内) には、Windows のコマンド ラインの引用符付けが非常に難しい理由を説明するリンクがあります。パス名からスペースを削除するのは良い選択です。