JMP® tiene un contenedor jpip que es simplemente un contenedor delgado alrededor de pip , ya que dicha funcionalidad, como la instalación de paquetes a través de un archivo de requisitos, es totalmente compatible. A continuación, se muestran dos scripts, uno JSL y otro Python. Cada uno utiliza un cuadro de diálogo Pick File() de JSL para que el usuario seleccione el archivo de requisitos y, luego, la ruta se pasa a jmputis.jpip() para procesar el archivo de requisitos. La mayor parte del código que se muestra utiliza el cuadro de diálogo de selección de archivos. Con una ruta codificada, se puede hacer en dos líneas de Python:
desde jmputils importar jpip
jpip('instalar', '-r _ruta_a_requisitos.txt')
Sólo hay un pequeño truco para que esto funcione.
La función jmputils.jpip() es simplemente un contenedor sobre pip para garantizar que los paquetes se instalen en el entorno aislado de JMP. Instalar y usar un archivo de requisitos es simple. Debido al contenedor, esto debe expresarse de una manera específica. El '-r' del comando pip debe ir seguido inmediatamente por el nombre del archivo. Para garantizarlo, debe colocarse con el parámetro de cadena 'package' de jpip . El código a continuación debería funcionar para JMP 18.0 y versiones posteriores. Estos ejemplos estarán en el Índice de secuencias de comandos en JMP 19.
Desde 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}')
]\");
Desde 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}')