¿Existe una práctica recomendada para instalar y utilizar un módulo Python local en el entorno JSL?
Leí la documentación en Instalar paquetes de Python con JSL y parece estar orientada a bibliotecas estándar. ¿Existe una ubicación predeterminada donde JMP busca módulos personalizados?
¿Hay alguna forma de administrar actualizaciones de módulos personalizados usando JSL?
¿Existen diferencias al trabajar con módulos, paquetes o bibliotecas personalizados?
¿Cómo los gestionas cuando no utilizas JMP? Lo más probable es que puedas utilizar algo similar cuando utilices JMP.
JMP simplemente lo "encontrará" si está en el mismo directorio que el script de inicio .jsl o .py. Hay un problema en JMP 18.0 si el script de inicio es .jsl: no encuentra la importación .py.
Debería funcionar bien desde scripts .jsl o .py en 18.1+
La otra forma es crear un archivo pyproject.toml, colocar el script en un directorio con el mismo nombre que el archivo y un archivo pyproject.toml apropiado. Esto lo convierte en un paquete instalable que jpip puede instalar en la ubicación site-packages/ de JMP. Consulta la documentación de Python.org o muchos otros tutoriales sobre cómo crear paquetes instalables de Python. Por ejemplo: https://til.simonwillison.net/python/pyproject
El código que se muestra a continuación es rápido y sencillo y probablemente no siga las mejores prácticas de Python. Creo que suele haber un archivo __init__.py y __main__.py o main.py en lugar del archivo que coincide con el directorio del paquete... Pero el archivo toml te permite especificar muchas cosas, incluidas las dependencias, como se muestra a continuación.
dt2pandas/
dt2pandas.py
proyectopy.toml
proyectopy.toml
[proyecto]
nombre = "dt2pandas"
description = "ejemplo de jmp.DataTable a pandas.DataFrame"
autores = [
{ nombre = "Paul R. Nelson", correo electrónico = "paul.nelson@jmp.com" }
]
versión = "0.1"
dependencias = [ "pandas" ]
¿En qué momento puedes hacer una?
jmputils.jpip('instalar', '-e _mi_ruta_a/ dt2pandas')