Gibt es eine bewährte Methode zum Installieren und Verwenden eines lokalen Python-Moduls in der JSL-Umgebung?
Ich habe die Dokumentation unter Installieren von Python-Paketen mit JSL gelesen und diese scheint auf Standardbibliotheken ausgerichtet zu sein. Gibt es einen Standardspeicherort, an dem JMP nach benutzerdefinierten Modulen sucht?
Gibt es eine Möglichkeit, benutzerdefinierte Modulaktualisierungen mit JSL zu verwalten?
Gibt es Unterschiede bei der Arbeit mit benutzerdefinierten Modulen, Paketen oder Bibliotheken?
Wie verwalten Sie sie, wenn Sie JMP nicht verwenden? Höchstwahrscheinlich könnten Sie bei Verwendung von JMP etwas Ähnliches nutzen.
JMP wird es einfach „finden“, wenn es sich im selben Verzeichnis befindet wie das startende .jsl- oder .py-Skript. Es gibt ein Problem in JMP 18.0: Wenn das startende Skript .jsl ist, findet es den .py-Import nicht.
Es sollte sowohl mit .jsl- als auch mit .py-Skripten in 18.1+ einwandfrei funktionieren.
Die andere Möglichkeit besteht darin, eine pyproject.toml-Datei zu erstellen, das Skript in ein Verzeichnis mit demselben Namen wie die Datei und eine entsprechende pyproject.toml-Datei zu legen. Dadurch wird es zu einem installierbaren Paket, das jpip dann im JMP-Speicherort site-packages/ installieren kann. Weitere Informationen zum Erstellen installierbarer Python-Pakete finden Sie in den Dokumenten von Python.org oder in vielen anderen Tutorials. Zum Beispiel: https://til.simonwillison.net/python/pyproject
Der folgende Code ist schnell und schmutzig und folgt wahrscheinlich nicht den Best Practices von Python. Ich denke, es gibt normalerweise eine Datei __init__.py und __main__.py oder main.py anstelle der Datei, die dem Paketverzeichnis entspricht ... Aber die Toml-Datei lässt Sie viele Dinge angeben, einschließlich Abhängigkeiten, wie unten gezeigt.
dt2pandas/
dt2pandas.py
pyproject.toml
pyproject.toml
[Projekt]
Name = "dt2pandas"
Beschreibung = „Beispiel von jmp.DataTable zu pandas.DataFrame“
Autoren = [
{ Name = "Paul R. Nelson", E-Mail = "paul.nelson@jmp.com" }
]
Version = "0.1"
Abhängigkeiten = [ "Pandas" ]
An diesem Punkt können Sie eine
jmputils.jpip('installieren', '-e _mein_Pfad_zu/ dt2pandas')
Ausgezeichnet, danke, Paul.