image image


image

Py5 und Jupyter/JupyterLab: Ein mittleres Fiasko

Ich hatte gestern abend und heute vormittag versucht, Py5 und Jupyter respektive JupyterLab zu verbandeln. Dieser Versuch endete leider in einem mittleren Fiasko. Dabei liegt das Problem nicht bei Py5, sondern bei Jupyter, das einfach zu viel Geheimwissen voraussetzt und so viele Fall- und Hintertürchen besitzt, daß ein Gelegenheitsuser wie ich einfach überfordert ist. Doch der Reihe nach:

Ich bin der Dokumentation gefolgt und da bei mir schon seit Jahren eine Anaconda-Distribution werkelt, habe ich die dort vorgeschlagene Anaconda-Distribution versucht. Das dafür erst einmal conda und Python Stunden mit einem Update vertrödelten, sei geschenkt. Da ich die letzten Monate fast ausschließlich mit Thonny und der dort installierten Python-Version gearbeitet hatte, lief meine Anaconda-Distribution noch mit einem Python 3.7. Nachdem conda dies auf ein Python 3.8 angehoben hatte, habe ich mit

conda env create -n py5coding -f http://py5.ixora.io/files/install/py5_environment.yml

eine virtuelle Umgebung mit allen notwendigen Dateien für Py5 erzeugt (alle Abhängigkeiten sind in der Datei py5_environment.yml aufgeführt). Das ging relativ flott und mit

conda activate py5coding

bin ich dann in diese virtuelle Umgebung hereingesprungen. Da mein Java schon ein Java 18 war, habe ich dann nur noch mit

jubyter lab

JupyterLab gestartet und alles schien schick. Das Beispielskript für den Module-Mode (inklusive der »magischen« Anweisung %gui osx)

%gui osx

import py5

def setup():
    py5.size(200, 200)
    py5.rect_mode(py5.CENTER)

def draw():
    py5.rect(py5.mouse_x, py5.mouse_y, 10, 10)

py5.run_sketch()

brachte, wie der Screenshot im Banner oben beweist, das gewünschte Ergebnis. Davon ermutigt, wollte ich mehr und schon brach das Fiasko über mich herein. Denn mit

python -m py5jupyter.kernels.py5.install --sys-prefix

wollte ich den Py5-Kernel installieren1, der die Py5-Skripte im imported mode starten soll. Das ist der Mode, der auch in Thonny mit Tristan Bunns Py5-Plugin bewirkt, daß die Skripte ohne import py5-Statement und ohne vorangestelltem py5. funtionieren.

Doch hier ging dann gar nichts mehr. Zwar erkannte mein JupyterLab den Py5-Kernel, doch den Versuch, damit ein Skript zu starten, das in Thonny problemlos lief, quittierte JupyterLab mit den Fehlermeldungen,

[Py5App] ERROR | No such comm target registered: jupyter.widget.control
[Py5App] WARNING | No such comm: f333e7a2-aafe-4d49-b846-65f26bc6140b

um dann still zu entschlafen. Die gleiche Fehlermeldung schickte mir der mit

python -m py5jupyter.kernels.py5bot.install --sys-prefix

installierte Py5bot-Kernel. Darauf habe ich dann still und leise weinend JupyterLab beendet und mit

conda deactivate

die virtuelle Umgebung wieder verlassen. Daß JupyterLab dann auch noch ungefragt meine Versuche in der Wurzel meines Nutzerverzeichnisses abspeicherte, festigte nur den schlechten Eindruck, den diese Programmierumgebung bei mir hinterlassen hatte.

Auch wenn ich kaum Hoffnung auf ein besseres Ergebnis habe, werde ich noch Versuche mit Spyder und VSCodium durchführen. Aber wie es so ausschaut, wird wohl Thonny meine Py5-Entwicklungsumgebung bleiben.

Der Module-Mode (das ist der Mode mit import py5), vorangestellten py5.-Prefixen und py5.run_sketch() funktioniert allerdings in meinem Anaconda-Environment nicht nur mit JupyterLab, sondern auch mit jedem vernünfigen Text-Editor (zum Beispiel Geany, VSCodium oder TextMate 2). Man ist also nicht auf Gedeih und Verderb an Thonny gefesselt. Und so kann ich den (Beinahe-) Ausfall von Jupyter und JupyterLab verschmerzen. Hier überlege ich noch, ob eine virtuelle Umgebung sinnvoll ist, oder ob ich Py5 nicht global für mein Anaconda-Python installieren soll? Still digging!


3 (Email-) Kommentare


Das konnte ich natürlich nicht auf mir sitzen lassen, dass Du das nicht zum Laufen gebracht hast, deshalb musst ich das selbst ausprobieren. Ich bin jetzt kein Freund von Anaconda, deshalb habe ich Folgendes gemacht:

image

Hat bei mir funktioniert!

– Robert Sch. (Kommentieren) (#)


Da ich mit dem GUI-Kram in JupyterLab keine Erfahrung habe, aber unbedingt Dein Beispiel ausprobieren wollte, habe ich weiter geforscht und folgendes gemacht:

image

Hat wunderbar geklappt!
Bin gestern noch verzweifelt, weil ich nicht wußte, wie man die GUI initialisiert, aber daß es so einfach ist, hätte ich dann auch nicht gedacht …

– Robert Sch. (Kommentieren) (#)


Nachdem ich jetzt auch den py5bot-Kernel in meiner Umgebung installiert habe, konnte ich auch alle Beispiele aus dieser Website https://py5.ixora.io/tutorials/introduction_to_py5bot.html ausführen!

– Robert Sch. (Kommentieren) (#)

  1. --sys-prefix bewirkt, daß die Installation nur für die aktivierte, virtuelle Umgebung vorgenommen wird. 


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung

Diese Spalte wurde absichtlich leergelassen!


Werbung


image  image  image
image  image  image


image