JMP® verfügt über einen jpip-Wrapper, der lediglich ein dünner Wrapper um pip ist, da solche Funktionen, wie das Installieren von Paketen über eine Anforderungsdatei, vollständig unterstützt werden. Unten finden Sie zwei Skripte, ein JSL- und ein Python-Skript. Jedes verwendet einen JSL- Pick-File()- Dialog, damit der Benutzer die Anforderungsdatei auswählen kann. Der Pfad wird dann an jmputis.jpip() weitergegeben, um die Anforderungsdatei zu verarbeiten. Der Großteil des angezeigten Codes verwendet den Dateiauswahldialog. Mit einem fest codierten Pfad kann dies in zwei Python-Zeilen erfolgen:
von jmputils importiere jpip
jpip('install', '-r _Pfad_zu_den_Anforderungen.txt')
Damit das klappt, gibt es nur einen kleinen Trick.
Die Funktion jmputils.jpip() ist nur ein Wrapper über pip, um sicherzustellen, dass Pakete in der isolierten JMP-Umgebung installiert werden. Die Installation und Verwendung einer Anforderungsdatei ist einfach. Aufgrund des Wrappers muss dies auf eine bestimmte Weise ausgedrückt werden. Auf das „-r“ im pip-Befehl muss unmittelbar der Dateiname folgen. Um dies zu gewährleisten, sollte es mit dem String-Parameter „package“ für jpip platziert werden. Der folgende Code sollte für JMP 18.0 und neuer funktionieren. Diese Beispiele finden Sie im Scripting Index in JMP 19.
Von JSL
Names Default To Here(1);
src_path = Pick File(
"Select requirements.txt File",
"$DOCUMENTS",
{"TXT Files|txt", "All Files|*"},
0,
0,
"requirements.txt"
);
If( Host is("Windows"),
src_path = Convert File Path( src_path, windows )
);
Python Send(src_path);
Python Submit("\[
from jmputils import jpip
jpip('install', f'-r {src_path}')
]\");
Von Python
import jmp
from jmputils import jpip
jmp.run_jsl('''
Names Default To Here( 1 );
src_path = Pick File(
"Select requirements.txt File",
"$DOCUMENTS",
{"TXT Files|txt", "All Files|*"},
0,
0,
"requirements.txt"
);
show(src_path);
If( Host is("Windows"),
src_path = Convert File Path( src_path, windows )
);
show(src_path);
Python Send(src_path);
''')
jpip('install', f'-r {src_path}')