JMP Python-Skriptschnittstelle zum Verweisen auf eine andere Python-Installation als die nativen JMP-OrdnerHallo
Ich möchte ein Skript schreiben, das Daten aus einer JMP-Tabelle sendet, eine Python-Bibliothek ausführt und die Ausgaben an JMP zurückgibt.
Manche dieser Bibliotheken setzen eine bestimmte Python-Installation zwingend voraus. Darüber hinaus verfügen wir selbstverständlich über eine unabhängige Python-Installation (d. h. lokal, und diese bezeichne ich als Nicht-JMP-Python).
Ich bin neu in der JMP-Python-Skripterstellung und arbeite mich gerade durch die Grundlagen unter https://www.jmp.com/support/help/en/18.1/index.shtml#page/jmp/install-a-python-package.shtml# . Meine Frage bezieht sich darauf, ob es möglich ist, JMP anzuweisen, für die bevorzugte Python-Installation einen anderen Ordner als den nativen JMP-Installationsordner zu verwenden. Falls ja, wäre es hilfreich, ein Beispiel für ein JMP-Python-Skript zu finden?
Danke
Automatisierung und SkripterstellungBetreff: JMP Python-Skriptschnittstelle zum Verweisen auf eine andere Python-Installation als die nativen JMP-OrdnerVor JMP 18 konnte man JMP auf eine bestimmte Python-Installation verweisen und diese ausführen lassen. In JMP 18 und höher muss man dafür meines Wissens die Funktion „Programm ausführen()“ verwenden, was nicht optimal ist.
Betreff: JMP Python-Skriptschnittstelle zum Verweisen auf eine andere Python-Installation als die nativen JMP-OrdnerJMP 14-17 versuchte, die auf dem System des Benutzers installierte Python-Version zu nutzen. Dies funktionierte jedoch nur mit Python.org-Versionen und führte zu Problemen, wenn mehrere Python-Versionen installiert waren. Wenn JMP die Python-Version korrekt erkannte, funktionierte alles einwandfrei. Andernfalls war es für den Benutzer nahezu unmöglich, die notwendigen Parameter für die Auswahl der Python-Version anzugeben. JMP 14-17 stellte die Benutzeroberfläche ausschließlich über JSL-Skriptbefehle bereit. Dies führte außerdem zu nicht portablen Skripten, da der Empfänger des Skripts möglicherweise kein Python installiert hatte oder eine inkompatible Version verwendete.
Die Ziele von JMP 18 waren:
- Um sicherzustellen, dass Python sofort mit JMP funktioniert, ist keine Konfiguration erforderlich.
- Alle Benutzer von JMP 18 würden die gleiche Python 3.11.x-Version verwenden, sodass die Skriptkompatibilität kein Problem mehr darstellen würde.
- Bereitstellung einer Python-zentrierten Umgebung anstelle einer reinen JSL-Schnittstelle zu Python.
- Ermöglichen Sie die einfache Installation externer Python-Pakete zur Erweiterung der JMP-Funktionen.
- Beginnen Sie damit, einen besseren Datenaustausch zwischen JMP- und Python-Umgebungen zu ermöglichen, insbesondere im Hinblick darauf, dass Datentabellen zu Zero-Copy-Referenzen werden, anstatt Kopien von Daten zu sein, die über das Dateisystem zwischen den Umgebungen übertragen werden.
Um die Zero-Copy-Integration von Datentabellen zu erreichen, ist eine Verknüpfung mit der Python Shared Library erforderlich. Dies setzt voraus, dass ausschließlich das von JMP bereitgestellte eingebettete Python verwendet werden kann.
JMP 19 wird mit Python 3.13.x ausgeliefert. JMP wird aufgrund von Fehlerbehebungen und Sicherheitsupdates weiterhin eng an den aktuellen Python-Versionen orientiert bleiben. Wir liefern mit unseren Wartungsupdates stets eine aktualisierte Python-Version aus und behalten dabei die gleiche Haupt- und Nebenversionsnummer innerhalb des jeweiligen JMP-Versionszyklus bei.
JMP 20 wird voraussichtlich mit Version 3.14.x ausgeliefert.
Betrachten Sie die JMP-Umgebung als eine JMP-spezifische virtuelle Umgebung. Sie können JMP Python problemlos zur Interaktion mit einer externen Python-Umgebung nutzen. Ich empfehle, die interne JMP-Python-Umgebung zu verwenden, um Daten in eine Datenbank zu übertragen oder sie über mmap (gemeinsamer Speicher), Sockets, ZeroMQ usw. an die andere Python-Umgebung zu übergeben. Es gibt viele Möglichkeiten, Daten zu übertragen, ohne sie zurück ins Dateisystem schreiben zu müssen.
An diesem Punkt kann entweder JSLs RunProgram() oder Pythons Multiprocessing verwendet werden, um die andere Python-Umgebung zu starten.
Betreff: JMP Python-Skriptschnittstelle zum Verweisen auf eine andere Python-Installation als die nativen JMP-OrdnerDanke für eure Antworten. Ich komme mit der JMP-Python-Dokumentation etwas nur schwer voran. Ich wünschte, es gäbe eine Art Vorlage mit Beispielen (vielleicht gibt es ja eine). Ich habe eventuell noch weitere Fragen.
Mein Bedarf an Python ergibt sich aus Folgendem:
1. EBM (Explainable Boosting Machines) – diese Funktion ist in JMP nicht verfügbar.
2. SHAP-spezifische Diagramme .. SHAP kann über verschiedene Plattformen bezogen werden, aber mir gefallen die spezifischen Diagrammformate, die die ursprüngliche SHAP-Bibliothek bietet.
Insbesondere EBM-spezifische Versionen von Python und scikit-learn. Ich bräuchte ein Beispiel, das mir die Installation und Ausführung einer einfachen Bibliothek beschleunigt und mir zeigt, wie ich die Ausgabe als Datentabelle in JMP zurückbekomme. Den Installationsteil habe ich meines Wissens soweit verstanden.
Und so wie ich die Erklärungen verstehe: Wenn eine Python-Bibliothek verwendet werden soll, die nicht Teil der JMP-Installationsordner ist, dann erfolgt die Lösung über Run_Program().
Betreff: JMP Python-Skriptschnittstelle zum Verweisen auf eine andere Python-Installation als die nativen JMP-OrdnerGenerell gilt: Solange ein Modul mit der Python-Installation von JMP kompatibel ist, kann es verwendet werden. Die Installation erfolgt über den Befehl `Python Install Packages("Paketname")`. " ), vorausgesetzt, es ist über pip verfügbar.
Betreff: JMP Python-Skriptschnittstelle zum Verweisen auf eine andere Python-Installation als die nativen JMP-OrdnerHallo @altug_bayram ,
"Ich wünschte, es gäbe eine Art Vorlage mit Beispielen."
Der Skriptindex enthält einige kurze Python-Beispiele. Unter Python-Integration > Funktionen > from_dataframe finden Sie einige Beispiele, die Ihren Anforderungen entsprechen könnten.
Nicht genau die Fragen, die Sie stellen, aber vielleicht hilfreich:
EBM (Erklärbare Leistungssteigerungsmaschinen)
Ich bin mit EBM nicht besonders vertraut, aber die Predictor-Screening-Plattform in JMP und die Bootstrap-Forest-/Boosted-Tree-Plattformen in JMP Pro könnten Ihren Anforderungen entsprechen. Nach einer kurzen Online-Übersicht scheint EBM eine Art Mischung aus Bootstrap Forests und Boosted Trees zu sein, aber das ist möglicherweise eine zu vereinfachte Darstellung.
SHAP-spezifische Diagramme
Würde dieser Link bei den Diagrammen helfen?
Python-Spezifika:
Letztendlich sollte es keine technischen Hürden geben, eine Datentabelle mithilfe von Python-spezifischen Bibliotheken an Python zu senden und die Daten und/oder Bilder anschließend wieder in JMP einzubinden.
Ich habe ein Beispielskript beigefügt, das die ephem-Bibliothek zur Berechnung der Planetenpositionen verwendet und die Daten anschließend zur Visualisierung in JMP importiert. Beachten Sie, dass die Zeilen 9 und 10 die ephem-Bibliothek innerhalb der Python-Umgebung von JMP installieren und nur einmal ausgeführt werden müssen.