Ausführen einer Python-exe von Run program()Ich habe eine ausführbare Python-Datei (also brauche ich oder andere kein Python auf dem PC), die einige Daten analysieren kann ...
Ich würde dies gerne von JMP aus aufrufen und ausführen, bin mir jedoch nicht sicher, wie der beste Weg ist, da ich dieser Python-exe Variablen von JMP zuführen und die Rückgabe erhalten möchte.
Ich habe dies erfolgreich mit den integrierten Python-Befehlen getan, aber nie mit einer Stand-Along-Python-Exe-Datei. Eine der Variablen, die ich einspeisen muss, ist eine Datentabelle. Derzeit müsste JMP die Tabelle als .csv an einem temporären Speicherort speichern, dann kann diese Python-Exe diese .csv ausführen und bearbeiten ... dann kann JMP die aktualisierte CSV öffnen (ich habe diesen Stream nicht codiert) in JSL, da es meiner Meinung nach einen besseren Weg geben muss)
Irgendwelche Gedanken? Ich habe minimale Erfahrung mit Run Command(), daher werden alle Startzeiger geschätzt 
Vielen Dank!
SkriptingBetreff: Ausführen einer Python-exe von Run program()Die Verwendung einer ausführbaren Datei, die aus einem Python-Programm über RunProgram erstellt wurde, oder das Aufrufen des Python-Interpreters mit dem Python-Skript von RunProgram ist ähnlich. Keiner hat die Integration, die die Verwendung des integrierten Pythons hat. Sie müssen so etwas wie eine CSV-Datei verwenden, um Daten an das Python-Programm zu senden und Daten vom Python-Programm zurückzubekommen. Sie können auch Befehlszeilenparameter an die .exe übergeben. (Oder zum Python-Interpreter.)
In Ihrem Fall würde ich vorschlagen, die CSV-Datei in das Verzeichnis $temp zu schreiben und die Ergebnisse in Python zu drucken. Übergeben Sie den CSV-Pfad über die Befehlszeile. Verwenden Sie RunProgram(...readfunction("text")...), um die Zeichenfolge der gedruckten Ausgabe abzurufen. lösche die temporäre dir-Datei.
Betreff: Ausführen einer Python-exe von Run program()Ich habe dies nicht getan und kann es im Moment auf meinem System nicht einfach testen, aber es sieht so aus, als ob Sie mit JSL aus dem stdout einer ausführbaren Datei lesen und in die stdin-Streams einer ausführbaren Datei schreiben können: https://community.jmp.com/kvoqx44227/attachments/kvoqx44227/discovery-2016-content/67/1/Run%20Program.pdf
Python kann aus stdin lesen (und nach stdout ausgeben) als dateiähnliche Operation: Python – stdin, stdout und stderr – AskPython
Ich bin mir also ziemlich sicher, dass Sie Ihre Datentabelle zeilenweise in die stdin der ausführbaren Datei von JMP schreiben, eine dateiähnliche Methode verwenden können, um die Zeilen aus JMP in Python zu lesen, diese Zeilen zu einem Pandas-Datenrahmen, führen Sie Ihre Python-Operationen aus, geben Sie dann den Pandas-Datenrahmen zeilenweise von Python an den stdout aus und geben Sie ihn an JMP zurück.
Betreff: Ausführen einer Python-exe von Run program()@Michael_MXAK Hmm, das ist auch eine interessante Idee. Bei kleineren Dateien kann es gut funktionieren. Einige dieser Dateien können ziemlich groß werden, so dass die zeilenweise Methode möglicherweise nicht allzu effizient ist ... Es ist jedoch ein großartiger Denkanstoß.
Betreff: Ausführen einer Python-exe von Run program()@Craige_Hales Ok, das macht Sinn ... daran habe ich mich gelehnt, aber die Ausgabe der Informationen in den String zum Abrufen wäre einfacher als eine zweite CSV-Datei.