Ich hatte schon 2017 das erste mal mit Jupyter-Notebooks gearbeitet und fand die Möglichkeiten sehr schön. So ist es möglich Dokumentation und Programmcode sehr schön übersichtlich zu schreiben und so die Erklärungen sehr gut zum Code dazu zu verfassen. Daher möchte ich in diesem Post beschreiben wie Jupyter auf einem Raspberry Pi installiert werden kann.
Die Idee die ich damit verfolge ist meine verschiedenen Sensoren zu testen und die Beschreibung und den Code in Jyputer-Notebooks auszuprobieren und zu dokumentieren.
Eine sehr gute online Dokumentation findet sich hier: https://jupyter-notebook.readthedocs.io/en/stable/index.html
Software Installation – Jupyter-Notebook
Ich installiere alles auf einem Raspberry Pi 3 Model B+. Damit alles reibungslos funktioniert wird die neueste version der Paketverwaltung pip als erstes installiert.
Befehl: sudo pip3 install --upgrade pip
Nach dem die Paketverwaltung auf dem neuesten Stand ist kann Jupyter als solches auf dem Raspberry Pi mit dem folgenden Befehl installiert werden.
Befehl: sudo pip3 install jupyter
Die Installation hat bei mir ca. 20 Minuten gedauert da meine Internetanbindung auch nicht wirklich schnell war. Danach war die Software komplett auf meinem Raspberry Pi installiert.
Jupyter-Notebook ausführen
Da ich eigentlich an meinen Raspberry Pi Computer nie einen Monitor angeschlossen habe, da sich diese meistens verbaut in Roboter Autos befinden stelle ich zwei Varianten vor wie das Programm Jupyter-Notebook gestartet werden kann.
Jupyter-Notebook – grafische Oberfläche
Mit dem folgenden Befehl wird das Programm Jupyter-Notebook über die Konsole auf der grafischen Oberfläche von Raspbian gestartet.
Befehl: jupyter notebook
Es öffnet sich auch gleich ein Browser in dem das Jupyter-Notebook ausgeführt zu sehen ist.
Jetzt ist es auch möglich das Jupyter-Notebook so zu starten das der Browser nicht sofort ausgeführt wird. Dazu bitte den folgenden Befehl erweitert um –no-broswer starten.
Befehl: jupyter notebook --no-browser
Für den Fall das es mit dem Standard Port 8888 von Jupyter-Notebook zu problemen kommt kann auch beim ausführen ein individueller Port mitgegeben werden. Der Befehl sieht dann wie folgt aus.
Befehl: jupyter notebook --no-browser --port 9000
Jupyter-Notebook – remote von einem anderen Rechner
Nach dem wir im vorherigen Abschnitt schon kennen gelernt haben welche Parameter ganz einfach an den Aufruf des Jupyter-Notebooks angehängt werden können ist wohl schon fast klar wie es gehen kann das ein remote Rechner auf den Raspberry Pi zugreift auf dem das Jupyter-Notebook ausgeführt wird. Dazu muss man eigentlich nur die IP-Adresse des Rechners auf dem Jupyter Notebook ausgeführt wird mit dem Parameter –ip=<IP-Adresse> an den Befehl anhängen.
Befehl: jupyter notebook --no-browser --ip=192.168.1.44 --port 9000
Wer nicht immer via Commandline immer IP-Adresen freigeben möchte kann dies auch über die Konfiguration erledigen. Eine gute Beschreibung wie das config File erzeugt wird und welcher Wert auf True gesetzt werden muss findet sich hier: https://jupyter-notebook.readthedocs.io/en/stable/config.html?highlight=config
Eigenes Notebook starten
Jetzt möchte man ja sicher auch mal ein schon vorhandenes Notebook mit den eigenen Programmen und Dokumentation starten. Dazu ergänzt man die obigen Befehle einfach um den Namen des Notebooks z. B. my_notebook.ipynb
das gestartet werden soll. Der Befehl sähe dann wie folgt aus.
Befehl: jupyter notebook my_notebook.ipynb --no-browser --ip=192.168.1.44 --port 9000
Jupyter Notebook remote Zugriff aktivieren
Im folgenden Abschnitt erkäre ich wie der Zugriff auf Jupyter einfacher gelingt ohne das immer umständlich die Konsole bemüht werden muss. Dazu muss mit dem folgenden Befehl erst einmal eine Jupyter Konfigurations-Datei angelegt werden.
Befehl: jupyter notebook --generate-config
Damit remote via Passwort auf Jupyter zugegriffen werden kann muss ein SHA1 Hash des zu verwendenden Passwortes erzeugt werden. Dazu bitte ipython starten mit dem folgenden Befehl.
Befehl: ipython
In ipython müssen dann die folgenden Befehle nacheinander eingegeben werden.
Befehl:from notebook.auth import passwd
Befehl: passwd()
Jetzt bitte bei der Aufforderung das zu verwendende Passwort eingeben das der Anwender nutzen soll wenn er sich remote mit dem Jupyter Notebook verbinden möchte.
Der erzeugte SHA1 Hash wird jetzt kopiert und erst einmal z. B. in eine Text Datei zwischengespeichert.
Jetzt folgt die Konfiguration in der anfangs erzeugten Konfigurationsdatei von Jupyter Notebook. Diese ist im folgenden Pfad zu finde wenn alle Einstellungen unter dem User Pi durchgeführt wurden.
Pfad: /home/pi/.jupyter/jupyter_notebook_config.py
Die Datei z. B. mit Nano öffnen und an den folgenden zwei Stellen editieren.
Passwort ergänzen
Das Passwort muss als SHA1 Hash ergänzt werden damit es möglich ist sich remote am Jupyter Notebook anmelden zu können.
Host IP-Adresse ergänzen
Die Host IP-Adresse muss ergänzt werden, damit Jupyter Notebook nicht auf localhost hört sondern auf die IP Adresse die der Jupyther Notebook Server / Computer erhalten hat.
Nach demm alles konfiguert ist muss Jupyter Notebook nur noch mit dem folgenden Befehl gestartet werden. Es wäre auch denkbar diesen automatisch nach jedem Neustart auszuführen.
Befehl: jupyter notebook --no-browser
So sieht dann Jupyter Notebook in der Konsole ausgeführt aus.
Zusammenfassung
Jupyter Notebooks sind einfach ideal um kleine Programm auszuprobieren und um anderen Interessierten den Quellcode samt Beschreibung zukommen zu lassen.
Recent Comments