JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)JMP 18 bietet natives Python. Diese Open-Source-Python-Installation verwendet conda statt pip, scheint aber jetzt nicht mehr zu funktionieren.
https://github.com/industrial-data/pyJMP/
pyJMP funktioniert durch Ausführen der folgenden Bat-Datei mit 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 kernelspec liste
start /wait /B "" jupyter nbconvert --execute --to notebook --inplace %notebook_file_path%
Beachten Sie, dass zuerst Python aktiviert wird und wir dann eine Funktion in Jupyter aufrufen.
Der folgende Fehler tritt nur in JMP 18 auf, das seine eigene Python-Installation aufzurufen scheint (v 3.11 statt 3.10, installiert mit conda). Wenn man diese .bat-Datei vom Windows Explorer oder einem anderen cmd ausführt, funktioniert der Code wie erwartet.
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 Verfügbare Kernel: 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'
Es ist unklar, wie man dies vermeiden kann. Irgendwelche Ideen?
Automatisierung und SkriptingWindowsBetreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Lesen Sie dies https://community.jmp.com/t5/JMPer-Cable/JMP-is-Pythonic-Enhanced-Python-Integration-in-JMP-18/ba-p/723997 .
Es ist wahrscheinlich, dass das oben aufgeführte PyJMP-Paket mit einigen Änderungen nicht mit v18 funktioniert.
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Stimmt, wir müssen unser Predictor Explainer -Add-In irgendwann neu schreiben.
Der Hauptunterschied besteht darin, dass JMP 18 pip verwendet, während pyJMP Conda-Pakete verwendet.
In einigen Fällen, in denen .whl (Wheels) nicht enthalten sind, ist conda dennoch von Vorteil, da es bestimmte OS-Binärdateien enthält, ohne dass eine Kompilierung erforderlich ist.
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Danke, Paul.
Ich verstehe die Herausforderung und schätze die in JMP 18 geleisteten Anstrengungen. Aus diesem Grund haben wir letztendlich PyJMP entwickelt und temporäre Textdateien geschrieben, um die Daten hin und her zu übertragen.
Ich verstehe immer noch nicht, wie eine mit RunProgram() ausgeführte BAT-Datei die Python-Umgebung von JMP 18 stört.
Haben Sie irgendwelche Vermutungen?
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Die Frage ist: Ist Ihr Add-In davon abhängig, dass JMP Python-Code ausführt?
Ich gehe davon aus, dass ja. Nur JMP 18 verwendet das von JMP installierte Python. JMP selbst lädt die python311-DLL. Wenn also einer Ihrer Python-Codes versucht, JMP dazu zu bringen, Code auszuführen, der Python310.dll laden muss, erhalten Sie den Fehler, da Python311.dll bereits geladen und in JMP aktiv ist. Wir haben python.exe in jmp_python.exe umbenannt, um zu verhindern, dass Run Program() versehentlich JMPs Python findet, wenn versucht wird, python.exe oder python3.exe auszuführen. Ihr Batch-Skript sollte also nicht versuchen, die ausführbare Datei Python 3.11 auszuführen (es sei denn, Sie versuchen, dies auf einer der frühen JMP 18 EA-Versionen auszuführen).
Sie müssen möglicherweise darauf achten, dass in Ihrer Batchdatei der Pfad zur python310.dll der Conda-Umgebung vor dem Pfad zum ausführbaren JMP-Verzeichnis steht, da sich die python311.dll im ausführbaren JMP-Verzeichnis befindet. Ich würde jedoch denken, dass die python310.dll geladen wird, wenn Ihr Python3.10 ausgeführt wird.
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Ich habe die Grundursache des Problems gefunden, indem ich den Ideen von Paul gefolgt bin (danke!).
RunProgram() startet und schließt den JMP-Installationsordner in den PATH ein.
C:\Program Files\JMP\JMP\18
C:\Program Files\JMP\JMPPRO\18
Dieser Ordner enthält jmp_python.exe, aber auch python311.dll und andere.
Um Probleme zu vermeiden, habe ich daher das aktuelle Verzeichnis in meinem .bat-Skript geändert.
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Außerdem macht die neue Python-Integration in JMP PyJMP wahrscheinlich überflüssig. Andere Pakete und Tools, die auf PyJMP basieren, können wahrscheinlich umgeschrieben werden, um die neue Python-Integration zu verwenden.
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)Zu meiner Überraschung stört es, trotz dem, was im Artikel steht.
Ich bin nicht sicher, wie, aber Jupyter findet den JMP 18-Kernel, wenn die .bat-Datei von JSL nur über „Run Program()“ aufgerufen wird.
Betreff: JMP 18 Python-Kernel stört die Miniconda Python-Installation (Programm ausführen)JMP 18 installiert Python 3.11.5 mit JMP 18.0 und 3.11.9 mit dem Sicherheitsupdate JMP 18.0.1. Dadurch können wir die tiefe Integration bereitstellen, die für die Bereitstellung des integrierten JMP- Pakets erforderlich ist. Dies geschah auch aufgrund der zahlreichen Probleme, die viele hatten, JMP und Python für die Zusammenarbeit zu konfigurieren, und um das Problem unterschiedlicher Python-Installationen von Desktop zu Desktop zu lösen.
JMP 18 unterstützt die Ausführung von Python nur in der mit JMP gelieferten Distribution.