Runprogram()からpythonexeを実行する私はいくつかのデータを分析できるPython実行可能ファイルを持っています(私や他の人はPCにPythonをインストールする必要はありません)...
これをJMPから呼び出して実行したいのですが、JMPからこのpython exeに変数をフィードして戻り値を取得できるようにしたいので、最善の方法がわかりません。
私は統合されたpythonコマンドを使用してこれを正常に実行しましたが、pythonexeファイルに沿ったスタンドを使用したことはありません。 フィードする必要がある変数の1つは、データテーブルです。 現在、JMPにテーブルを一時的な場所に.csvとして保存させる必要があります。その後、このpythonexeを実行してその.csvを編集できます...次にJMPは更新されたCSVを開くことができます(そのストリームはコーディングされていませんJSLではもっと良い方法があるはずだと思います)
何かご意見は? 私はRunCommand()の経験が最小限なので、開始ポインタはありがたいです:)
ありがとう!
スクリプティング再:Runprogram()からpythonexeを実行するRunProgramを介してPythonプログラムから構築された実行可能ファイルを使用するか、RunProgramからPythonスクリプトを使用してPythonインタープリターを呼び出すことも同様です。 どちらも、統合されたPythonを使用する場合のような統合はありません。 Pythonプログラムにデータを送信し、Pythonプログラムからデータを取得するには、CSVファイルなどを使用する必要があります。 コマンドラインパラメータを.exeに渡すこともできます。 (またはPythonインタープリターに。)
あなたの場合、CSVを$ tempディレクトリに書き込み、結果をPythonで出力することをお勧めします。 コマンドラインからcsvパスを渡します。 RunProgram(... readfunction( "text")...)を使用して、印刷出力の文字列を取得します。一時ディレクトリファイルを削除します。
再:Runprogram()からpythonexeを実行する私はこれを行っておらず、現時点ではシステムで簡単にテストできませんが、JSLを使用して実行可能ファイルのstdoutから読み取り、実行可能ファイルのstdinストリームに書き込むことができるようです。 https://community.jmp.com/kvoqx44227/attachments/kvoqx44227/discovery-2016-content/67/1/Run%20Program.pdf
Pythonは、ファイルのような操作としてstdinから読み取る(およびstdoutに出力する)ことができます。 Python-stdin、stdout、およびstderr-AskPython
したがって、JMPから実行可能ファイルのstdinにデータテーブルを1行ずつ `<<書き込み`し、ファイルのようなメソッドを使用してPythonでJMPから行を読み取り、それらの行をPandasデータフレーム、Python操作を実行してから、PandasデータフレームをPythonからstdoutに行ごとに出力し、それをJMPにフィードバックします。
再:Runprogram()からPythonexeを実行する@Michael_MXAKうーん、それも面白いアイデアです。 小さいファイルの場合は問題なく動作する可能性があります。 これらのファイルの一部はかなり大きくなる可能性があるため、行ごとの方法は過度に効率的ではありません... しかし、それは思考のための素晴らしい食べ物です。
Re:Run program()からpythonexeを実行します@Craige_Halesわかりました、それは理にかなっています...それは私が傾いていたところですが、検索のために情報を文字列に出力することは、2番目のcsvよりも扱いやすいでしょう。