Il kernel Python JMP 18 interferisce con l'installazione di miniconda Python (Esegui programma)JMP 18 porta Python nativo. Questa installazione Python open source utilizza conda invece di pip, ma ora sembra non funzionante.
https://github.com/industrial-data/pyJMP/
Il modo in cui funziona pyJMP è eseguendo il seguente file bat utilizzando RunProgram() .
set JMP_PYTHON_PTH=C:\ProgramData\miniforge_JMP
CALL %JMP_PYTHON_PTH%\Scripts\activate.bat %JMP_PYTHON_PTH%
SET current_path=%~dp0
echo %current_path:~0,-1%
SET notebook_file=jmp_addin_minimum_features.ipynb
SET notebook_file_path=%current_path%%notebook_file%
echo %notebook_file_path%
python --version jupyter elenco delle specifiche del kernel
start /wait /B "" jupyter nbconvert --execute --to notebook --inplace %notebook_file_path%
Nota che Python viene prima attivato e poi chiamiamo una funzione all'interno di Jupyter.
Il seguente errore si verifica solo in JMP 18, che sembra richiamare la propria installazione Python (v 3.11 invece di 3.10 installata con conda). Se si esegue il file .bat da Windows Explorer o da un cmd diverso, il codice funziona come previsto.
C:\Program Files\JMP\JMPPRO\18>set JMP_PYTHON_PTH=C:\ProgramData\miniforge_JMP
C:\Program Files\JMP\JMPPRO\18>CALL C:\ProgramData\miniforge_JMP\Scripts\activate.bat C:\ProgramData\miniforge_JMP
C:\Users\MrX\AppData\Roaming\JMP\JMP\Addins\Predictor_Explainer
C:\Users\MrX\AppData\Roaming\JMP\JMP\Addins\Predictor_Explainer\jmp_addin_minimum_features.ipynb
<FONT color="#008000"><U><STRONG>Python 3.10.10 Kernel disponibili: python3 C:\ProgramData\miniforge_JMP\share\jupyter\kernels\python3</STRONG></U></FONT>
[NbConvertApp] Converting notebook C:\Users\MrX\AppData\Roaming\JMP\JMP\Addins\Predictor_Explainer\jmp_addin_minimum_features.ipynb to notebook
[NbConvertApp] ERROR | Module use of <FONT color="#FF0000"><U><STRONG>python311.dll</STRONG></U> </FONT>conflicts with this version of Python.
Traceback (most recent call last):
File \!"C:\ProgramData\miniforge_JMP\lib\site-packages\traitlets\traitlets.py\!", line 656, in get
value = obj._trait_values[self.name]
KeyError: 'kernel_dirs'
Non è chiaro come evitarlo. Qualche idea?
Automazione e scriptingfinestreRif.: Kernel Python JMP 18 che interferisce con l'installazione di Miniconda Python (Esegui programma)Dai una lettura a questo https://community.jmp.com/t5/JMPer-Cable/JMP-is-Pythonic-Enhanced-Python-Integration-in-JMP-18/ba-p/723997 .
È probabile che il pacchetto PyJMP sopra elencato non funzioni con la v18 con alcune modifiche.
Oggetto: Kernel Python JMP 18 che interferisce con l'installazione di Miniconda Python (Esegui programma)È vero, prima o poi dovremo riscrivere il nostro componente aggiuntivo Predictor Explainer .
La differenza principale è che JMP 18 utilizza pip mentre pyJMP utilizza i pacchetti conda.
Per alcuni casi in cui .whl (ruote) non sono inclusi, conda è comunque vantaggioso poiché include file binari specifici del sistema operativo senza dover compilare.
Rif.: Kernel Python JMP 18 che interferisce con l'installazione di Miniconda Python (Esegui programma)Grazie, Paolo.
Capisco la sfida e apprezzo gli sforzi compiuti in JMP 18. Questo è il motivo per cui abbiamo finito per sviluppare PyJMP e scrivere file di testo temporanei per trasferire i dati avanti e indietro.
Tuttavia, non capisco come un file .bat eseguito con RunProgram() interferisca con JMP 18 Python env.
Hai qualche ipotesi?
Rif.: Kernel Python JMP 18 che interferisce con l'installazione di Miniconda Python (Esegui programma)La domanda è: il tuo componente aggiuntivo dipende da JMP che esegue il codice Python?
Presumo di sì. Solo JMP18 utilizza Python installato da JMP. JMP stesso carica la dll python311. Pertanto, se uno qualsiasi dei tuoi codici Python sta tentando di convincere JMP a eseguire il codice che deve caricare Python310.dll, riceverai l'errore poiché Python311.dll è già caricato e attivo in JMP. Abbiamo rinominato python.exe in jmp_python.exe per evitare che Run Program() trovi accidentalmente Python di JMP durante il tentativo di eseguire python.exe o python3.exe, quindi lo script batch non dovrebbe tentare di eseguire l'eseguibile Python 3.11 (a meno che tu stanno provando a eseguirlo su una delle prime versioni di JMP 18 EA).
Una cosa che potresti dover considerare è assicurarti che nel tuo file batch ti assicuri che il PERCORSO del python310.dll dell'ambiente conda preceda il percorso della directory dell'eseguibile JMP poiché python311.dll risiede nella directory dell'eseguibile JMP. Tuttavia, penso che se il tuo Python3.10 è in esecuzione, caricherebbe python310.dll.
Oggetto: Kernel Python JMP 18 che interferisce con l'installazione di Miniconda Python (Esegui programma)Ho trovato la causa principale del problema, seguendo le idee condivise da Paul (grazie!).
RunProgram() si avvia e include la cartella di installazione di JMP nel PERCORSO.
C:\Program Files\JMP\JMP\18
C:\Program Files\JMP\JMPPRO\18
Questa cartella contiene jmp_python.exe, ma anche python311.dll e altri.
Pertanto, per evitare problemi, ho cambiato la directory corrente nel mio script .bat.
Re: Il kernel Python JMP 18 interferisce con l'installazione Python di miniconda (Esegui programma)Inoltre, la nuova integrazione Python in JMP probabilmente elimina la necessità di PyJMP. Altri pacchetti e strumenti che si basano su PyJMP possono probabilmente essere riscritti per usare la nuova integrazione Python.
Re: Il kernel Python JMP 18 interferisce con l'installazione Python di miniconda (Esegui programma)Con mia sorpresa, nonostante quanto scritto nell'articolo, interferisce.
Non so come, ma Jupyter trova il kernel JMP 18 quando il file .bat viene chiamato da JSL solo tramite Run Program().
Re: Il kernel Python JMP 18 interferisce con l'installazione Python di miniconda (Esegui programma)JMP 18 installa Python 3.11.5 con JMP 18.0 e 3.11.9 con l'aggiornamento di sicurezza JMP 18.0.1. Ciò ci consente di fornire la profonda integrazione necessaria per fornire il pacchetto gimp integrato. Ciò è stato fatto anche a causa dei numerosi problemi che molti hanno avuto nel configurare JMP e Python per funzionare insieme, nonché per risolvere il problema delle diverse installazioni Python da desktop a desktop.
JMP 18 non supporta più l'esecuzione di Python diversi dalla distribuzione fornita con JMP.