So installierst du Jupyter Notebook unter Ubuntu 22.04

Jupyter Notebook ist eine kostenlose, quelloffene und webbasierte Plattform für interaktives Rechnen, mit der du Dokumente über einen Webbrowser bearbeiten und ausführen kannst. Es basiert auf Python und ermöglicht es dir, Dokumente mit Live-Code, Gleichungen und Visualisierungen zu erstellen und über das Internet zu teilen. Das Ziel von Python ist es, Open-Source-Software, offene Standards und Dienste für interaktives Computing in verschiedenen Programmiersprachen zu entwickeln.

In diesem Tutorial zeige ich dir, wie du die Jupyter Notebook Software auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein gültiger Domainname ist mit der IP deines Servers verbunden.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Erste Schritte

Es wird empfohlen, zunächst alle Softwarepakete auf die neueste Version zu aktualisieren. Du kannst alle Pakete aktualisieren, indem du den folgenden Befehl ausführst:

apt update -y
apt upgrade -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren:

Python installieren

Zuerst musst du Python und andere Abhängigkeiten auf deinem Server installieren. Du kannst alle Pakete installieren, indem du den folgenden Befehl ausführst:

apt-get install python3 python3-pip -y

Sobald alle Pakete installiert sind, kannst du die Python-Version mit dem folgenden Befehl überprüfen:

python3 --version

Du solltest die folgende Ausgabe sehen:

Python 3.10.6

Als Nächstes aktualisierst du PIP mit dem folgenden Befehl auf die neueste Version:

pip3 install --upgrade pip

Als Nächstes überprüfst du die PIP-Version mit dem folgenden Befehl:

pip3 --version

Du solltest die folgende Ausgabe sehen:

pip 22.2.2 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10)

Als Nächstes installierst du das Python-Paket für die virtuelle Umgebung mit dem folgenden Befehl:

pip3 install virtualenv

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Jupyter Notebook installieren

Erstelle zunächst mit folgendem Befehl ein Verzeichnis, in dem dein Notebook gespeichert wird:

mkdir ~/project

Navigiere dann zum Projektverzeichnis und erstelle mit dem folgenden Befehl eine virtuelle Python-Umgebung:

cd ~/project
virtualenv notebookenv

Aktiviere dann die virtuelle Umgebung mit folgendem Befehl:

source notebookenv/bin/activate

Als Nächstes installierst du das Jupyter Notebook mit dem folgenden Befehl:

pip install jupyter

Sobald das Jupyter Notebook installiert ist, starte das Jupyter Notebook mit dem folgenden Befehl:

jupyter notebook --allow-root

Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:

[I 14:23:26.729 NotebookApp] Serving notebooks from local directory: /root/project
[I 14:23:26.729 NotebookApp] Jupyter Notebook 6.4.12 is running at:
[I 14:23:26.729 NotebookApp] http://localhost:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625
[I 14:23:26.729 NotebookApp]  or http://127.0.0.1:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625
[I 14:23:26.730 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 14:23:26.734 NotebookApp] No web browser found: could not locate runnable browser.
[C 14:23:26.734 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/nbserver-3214-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625
     or http://127.0.0.1:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625

Drücke die Tastenkombination STRG+C, um das Jupyter Notebook zu beenden.

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Jupyter Notebook-Passwort generieren

Es wird empfohlen, das Jupyter Notebook mit einem Passwort zu schützen. Erstelle zunächst eine Jupyter Notebook-Konfigurationsdatei mit dem folgenden Befehl:

jupyter notebook --generate-config

Du solltest die folgende Ausgabe sehen:

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

Als Nächstes legst du das Passwort für das Jupyter Notebook mit dem folgenden Befehl fest:

jupyter notebook password

Setze ein Passwort wie unten gezeigt:

Enter password: 
Verify password: 
[NotebookPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_notebook_config.json

Als Nächstes deaktivierst du die virtuelle Python-Umgebung mit dem folgenden Befehl:

deactivate

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Eine Systemd-Dienstdatei für Jupyter Notebook erstellen

Als Nächstes musst du eine systemd-Dienstdatei erstellen, um das Jupyter Notebook zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/systemd/system/jupyter.service

Füge die folgenden Codes hinzu:

[Unit]
Description=Jupyter Notebook
 
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/root/project/notebookenv/bin/jupyter-notebook --config=/root/.jupyter/jupyter_notebook_config.py --allow-root
User=root
Group=root
WorkingDirectory=/root/project/notebookenv
Restart=always
RestartSec=10
 
[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei und lade dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload

Starte als Nächstes das Jupyter Notebook und aktiviere es mit folgendem Befehl, damit es beim Neustart des Systems gestartet wird:

systemctl start jupyter
systemctl enable jupyter

Um den Status des Jupyter-Notebooks zu überprüfen, führe den folgenden Befehl aus:

systemctl status jupyter

Du solltest die folgende Ausgabe sehen:

? jupyter.service - Jupyter Notebook
     Loaded: loaded (/etc/systemd/system/jupyter.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-10-11 14:27:01 UTC; 4s ago
   Main PID: 3649 (jupyter-noteboo)
      Tasks: 1 (limit: 2242)
     Memory: 53.4M
        CPU: 980ms
     CGroup: /system.slice/jupyter.service
             ??3649 /root/project/notebookenv/bin/python /root/project/notebookenv/bin/jupyter-notebook --config=/root/.jupyter/jupyter_noteb>

Oct 11 14:27:01 ubuntu2204 systemd[1]: Started Jupyter Notebook.
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.288 NotebookApp] Serving notebooks from local directory: /root/project/noteboo>
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.289 NotebookApp] Jupyter Notebook 6.4.12 is running at:
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.289 NotebookApp] http://localhost:8888/
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.290 NotebookApp] Use Control-C to stop this server and shut down all kernels (>
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [W 14:27:02.293 NotebookApp] No web browser found: could not locate runnable browser.

Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx als Reverse Proxy für Jupyter Notebook konfigurieren

Jetzt ist Jupyter Notebook gestartet und läuft auf Port 8888. Jetzt musst du Nginx als Reverse Proxy konfigurieren, damit du über Port 80 auf das Jupyter Notebook zugreifen kannst.

Installiere zunächst das Nginx-Webserverpaket mit dem folgenden Befehl:

apt-get install nginx -y

Sobald Nginx installiert ist, erstellst du mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Nginx-Host:

nano /etc/nginx/conf.d/jupyter.conf

Füge die folgenden Konfigurationen hinzu:

upstream notebook {
server 127.0.0.1:8888;
}
 
server {
listen 80;
server_name jupyter.example.com;
 
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
 
location / {
     proxy_pass http://localhost:8888;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header Host $http_host;
     proxy_http_version 1.1;
     proxy_redirect off;
     proxy_buffering off;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
     proxy_read_timeout 86400;
     }
}

Speichere und schließe die Datei und überprüfe dann Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Du solltest die folgende Ausgabe sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte anschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart nginx

Du kannst den Nginx-Status auch mit dem folgenden Befehl überprüfen:

systemctl status nginx

Du erhältst die folgende Ausgabe:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-10-11 14:28:53 UTC; 54s ago
       Docs: man:nginx(8)
    Process: 4193 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 4194 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 4195 (nginx)
      Tasks: 2 (limit: 2242)
     Memory: 2.6M
        CPU: 40ms
     CGroup: /system.slice/nginx.service
             ??4195 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??4196 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Oct 11 14:28:53 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 11 14:28:53 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Als Nächstes fügst du den Benutzer root mit folgendem Befehl zur Gruppe www-data hinzu:

usermod -g www-data root

Als Nächstes bearbeitest du die Konfigurationsdatei von Jupyter Notebook und aktivierst den Fernzugriff:

nano /root/.jupyter/jupyter_notebook_config.py

Ändere die folgende Zeile:

c.NotebookApp.allow_remote_access = True

Speichere und schließe die Datei und starte dann den Jupyter Notebook-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart jupyter

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Zugriff auf Jupyter Notebook

Öffne nun deinen Webbrowser und rufe das Jupyter Notebook über die URL http://jupyter.example.com auf. Auf dem folgenden Bildschirm wirst du aufgefordert, dein Jupyter Notebook-Passwort einzugeben:

Jupyter-Anmeldung

Gib dein Passwort ein und klicke auf die Schaltfläche Anmelden. Auf dem folgenden Bildschirm solltest du das Jupyter Notebook Dashboard sehen:

Jupyter Notebook

Fazit

Herzlichen Glückwunsch! Du hast Jupyter Notebook mit Nginx als Reverse Proxy auf Ubuntu 22.04 erfolgreich installiert. Jetzt kannst du dein Notebook über das Internet erstellen, freigeben und ausführen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …