Esiste una buona prassi per installare e utilizzare un modulo Python locale nell'ambiente JSL?
Ho letto la documentazione su Installa pacchetti Python usando JSL e sembra orientata alle librerie standard. Esiste una posizione predefinita in cui JMP cerca i moduli personalizzati?
Esiste un modo per gestire gli aggiornamenti dei moduli personalizzati utilizzando JSL?
Ci sono differenze quando si lavora con moduli, pacchetti o librerie personalizzati?
Come li gestisci quando non usi JMP? Molto probabilmente potresti utilizzare qualcosa di simile quando usi JMP.
JMP lo "troverà" solo se si trova nella stessa directory dello script di avvio .jsl o .py. C'è un problema in JMP 18.0 se lo script di avvio è .jsl, non trova l'importazione .py.
Dovrebbe funzionare bene sia con gli script .jsl che .py in 18.1+
L'altro modo è creare un file pyproject.toml, mettere lo script in una directory con lo stesso nome del file e un file pyproject.toml appropriato. Questo lo rende un pacchetto installabile che jpip può quindi installare nella posizione site-packages/ di JMP. Consulta la documentazione di Python.org o molti altri tutorial sulla creazione di pacchetti Python installabili. Come: https://til.simonwillison.net/python/pyproject
Il codice qui sotto è rapido e sporco e probabilmente non segue le best practice di Python. Penso che di solito ci sia un file __init__.py e __main__.py o main.py invece del file corrispondente alla directory del pacchetto... Ma il file toml consente di specificare un sacco di cose, comprese le dipendenze, come mostrato di seguito.
dt2pandas/
dt2pandas.py
progettopy.toml
progettopy.toml
[progetto]
nome = "dt2pandas"
descrizione = "esempio da jmp.DataTable a pandas.DataFrame"
autori = [
{ nome = "Paul R. Nelson", e-mail = "paul.nelson@jmp.com" }
]
versione = "0.1"
dipendenze = [ "pandas" ]
A quel punto puoi fare un
jmputils.jpip('installa', '-e _mio_percorso_verso/ dt2pandas')