Einrichten eines Jupyter-Notizbuchs mit Python 3 unter Debian 9

Einführung

Jupyter Notebook bietet eine Befehls-Shell für interaktives Computing als Webanwendung. Das Tool kann in mehreren Sprachen verwendet werden, darunter Python, Julia, R, Haskell und Ruby. Es wird häufig zum Arbeiten mit Daten, zur statistischen Modellierung und zum maschinellen Lernen verwendet.

In diesem Tutorial werden Sie durch die Einrichtung von Jupyter Notebook für die Ausführung auf einem Debian 9-Server geführt und lernen, wie Sie eine Verbindung zum Notebook herstellen und es verwenden. Jupyter-Notizbücher (oder einfach Notizbücher) sind Dokumente, die von der Jupyter-Notizbuch-App erstellt wurden und sowohl Computercode als auch Rich-Text-Elemente (Absätze, Gleichungen, Abbildungen, Links usw.) enthalten, die die Darstellung und Weitergabe reproduzierbarer Forschungsergebnisse unterstützen.

Am Ende dieses Handbuchs können Sie Python 3-Code mit Jupyter Notebook ausführen, das auf einem Remoteserver ausgeführt wird.

Voraussetzungen

Um dieses Handbuch zu vervollständigen, sollten Sie eine neue Debian 9-Serverinstanz mit einer grundlegenden Firewall und einen Nicht-Root-Benutzer mit konfigurierten Sudo-Berechtigungen haben. Wie Sie dies einrichten, erfahren Sie in unserem Initial Server Setup with Debian 9 -Handbuch.

Schritt 1 - Installieren Sie Pip- und Python-Header

Zu Beginn des Prozesses werden wir alle benötigten Elemente aus den Debian-Repositories herunterladen und installieren. Wir werden den Python-Paketmanager + pip + verwenden, um zusätzliche Komponenten etwas später zu installieren.

Wir müssen zuerst den lokalen "+ apt +" - Paketindex aktualisieren und dann die Pakete herunterladen und installieren:

sudo apt update

Installieren Sie als Nächstes "+ pip +" und die Python-Header-Dateien, die von einigen Jupyter-Abhängigkeiten verwendet werden:

sudo apt install python3-pip python3-dev

Debian 9 ("Stretch") ist mit Python 3.5 vorinstalliert.

Nun können wir eine virtuelle Python-Umgebung einrichten, in der Jupyter installiert wird.

Schritt 2 - Erstellen Sie eine virtuelle Python-Umgebung für Jupyter

Jetzt, da wir Python 3, seine Header-Dateien und "+ pip +" bereit haben, können wir eine virtuelle Python-Umgebung für eine einfachere Verwaltung erstellen. Wir werden Jupyter in dieser virtuellen Umgebung installieren.

Dazu benötigen wir zunächst den Befehl "+ virtualenv". Wir können dies mit + pip + installieren.

Aktualisieren Sie + pip + und installieren Sie das Paket, indem Sie Folgendes eingeben:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

Wenn "+ virtualenv +" installiert ist, können wir beginnen, unsere Umgebung zu formen. Erstellen Sie ein Verzeichnis und verschieben Sie es in ein Verzeichnis, in dem wir unsere Projektdateien aufbewahren können:

mkdir ~/
cd ~/

Erstellen Sie im Projektverzeichnis eine virtuelle Python-Umgebung, indem Sie Folgendes eingeben:

virtualenv

Dadurch wird ein Verzeichnis mit dem Namen "" in Ihrem "" - Verzeichnis erstellt. Im Inneren wird eine lokale Version von Python und eine lokale Version von + pip + installiert. Damit können wir eine isolierte Python-Umgebung für Jupyter installieren und konfigurieren.

Bevor wir Jupyter installieren, müssen wir die virtuelle Umgebung aktivieren. Sie können dies tun, indem Sie Folgendes eingeben:

source /bin/activate

Ihre Eingabeaufforderung sollte sich ändern, um anzuzeigen, dass Sie jetzt in einer virtuellen Python-Umgebung arbeiten. Es sieht ungefähr so ​​aus: + () @: ~ / $ +.

Sie können Jupyter jetzt in dieser virtuellen Umgebung installieren.

Schritt 3 - Installieren Sie Jupyter

Installieren Sie Jupyter bei aktivierter virtueller Umgebung mit der lokalen Instanz von "+ pip +":

pip install jupyter

Zu diesem Zeitpunkt haben Sie die gesamte Software erfolgreich installiert, die zum Ausführen von Jupyter erforderlich ist. Jetzt können wir den Notebook-Server starten.

Schritt 4 - Führen Sie Jupyter Notebook aus

Sie haben jetzt alles, was Sie zum Ausführen von Jupyter Notebook benötigen! Führen Sie dazu den folgenden Befehl aus:

jupyter notebook

Ein Protokoll der Aktivitäten des Jupyter-Notebooks wird auf dem Terminal gedruckt. Wenn Sie Jupyter Notebook ausführen, wird es auf einer bestimmten Portnummer ausgeführt. Das erste Notizbuch, das Sie ausführen, verwendet normalerweise den Port "++". Informationen zum Überprüfen der Portnummer, auf der Jupyter Notebook ausgeführt wird, finden Sie in der Ausgabe des Befehls, mit dem es gestartet wurde:

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home//
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:/?token=
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

   Copy/paste this URL into your browser when you connect for the first time,
   to login with a token:
       http://localhost:/?token=

Wenn Sie Jupyter Notebook auf einem lokalen Debian-Computer (nicht auf einem Droplet) ausführen, können Sie einfach zur angezeigten URL navigieren, um eine Verbindung zu Jupyter Notebook herzustellen. Wenn Sie Jupyter Notebook auf einem Droplet ausführen, müssen Sie eine Verbindung zum Server mithilfe von SSH-Tunneling herstellen, wie im nächsten Abschnitt beschrieben.

Zu diesem Zeitpunkt können Sie die SSH-Verbindung offen halten und Jupyter Notebook weiterhin ausführen oder die App beenden und erneut ausführen, sobald Sie das SSH-Tunneling eingerichtet haben. Lassen Sie es uns einfach halten und den Jupyter Notebook-Prozess stoppen. Wir werden es erneut ausführen, sobald der SSH-Tunnel funktioniert. Um den Jupyter Notebook-Vorgang zu beenden, drücken Sie die Tastenkombination "+ STRG + C ", geben Sie " Y +" ein und drücken Sie zur Bestätigung die Eingabetaste. Folgendes wird angezeigt:

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

Wir richten jetzt einen SSH-Tunnel ein, damit wir auf das Notebook zugreifen können.

Schritt 5 - Herstellen einer Verbindung zum Server mithilfe von SSH-Tunneling

In diesem Abschnitt erfahren Sie, wie Sie mithilfe von SSH-Tunneling eine Verbindung zur Jupyter Notebook-Weboberfläche herstellen. Da Jupyter Notebook auf einem bestimmten Port des Servers ausgeführt wird (wie z. B. ": 8888 +", ": 8889 +" usw.), können Sie durch SSH-Tunneling eine sichere Verbindung zum Serverport herstellen.

In den nächsten beiden Unterabschnitten wird beschrieben, wie Sie einen SSH-Tunnel aus 1) einem Mac oder Linux und 2) Windows erstellen. Beziehen Sie sich bitte auf den Unterabschnitt für Ihren lokalen Computer.

SSH-Tunneling mit einem Mac oder Linux

Wenn Sie einen Mac oder Linux verwenden, ähneln die Schritte zum Erstellen eines SSH-Tunnels denen zum Anmelden bei Ihrem Remote-Server mit SSH, mit der Ausnahme, dass der Befehl + ssh + zusätzliche Parameter enthält. In diesem Unterabschnitt werden die zusätzlichen Parameter beschrieben, die im Befehl "+ ssh +" für ein erfolgreiches Tunneln erforderlich sind.

SSH-Tunneling kann durch Ausführen des folgenden SSH-Befehls in einem neuen lokalen Terminalfenster durchgeführt werden:

ssh -L :localhost: @

Der Befehl "+ ssh " öffnet eine SSH-Verbindung, aber " -L +" gibt an, dass der angegebene Port auf dem lokalen (Client-) Host an den angegebenen Host und den angegebenen Port auf der Remote-Seite (Server) weitergeleitet werden soll. Dies bedeutet, dass alles, was auf der zweiten Portnummer läuft (z. `) auf dem Server erscheint an der ersten Portnummer (z. `) auf Ihrem lokalen Computer.

Ändern Sie optional den Port "++" in einen Ihrer Wahl, um zu vermeiden, dass ein Port bereits von einem anderen Prozess verwendet wird.

"" ist Ihr Benutzername (z. ) auf dem von Ihnen erstellten Server und "" ist die IP-Adresse Ihres Servers.

Für den Benutzernamen "" und die Serveradresse "" wäre der Befehl beispielsweise:

ssh -L :localhost: @

Wenn nach der Ausführung des Befehls + ssh -L + kein Fehler auftritt, können Sie in Ihre Programmierumgebung wechseln und Jupyter Notebook ausführen:

jupyter notebook

Sie erhalten eine Ausgabe mit einer URL. Öffnen Sie in einem Webbrowser auf Ihrem lokalen Computer die Jupyter Notebook-Weboberfläche mit der URL, die mit "+ http: // localhost: 8888 " beginnt. Stellen Sie sicher, dass die Token-Nummer enthalten ist, oder geben Sie die Token-Nummer ein, wenn Sie unter ` http: // localhost: 8888 +` dazu aufgefordert werden.

SSH-Tunneling mit Windows und Putty

Unter Windows können Sie mit Putty einen SSH-Tunnel erstellen.

Geben Sie zuerst die Server-URL oder die IP-Adresse als Hostnamen ein, wie gezeigt:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/set_hostname_putty.png [Hostname für SSH-Tunnel festlegen]

Klicken Sie anschließend unten im linken Bereich auf * SSH *, um das Menü zu erweitern, und klicken Sie dann auf * Tunnel *. Geben Sie die lokale Portnummer ein, die für den Zugriff auf Jupyter auf Ihrem lokalen Computer verwendet werden soll. Wählen Sie "" oder höher, um Ports zu vermeiden, die von anderen Diensten verwendet werden, und legen Sie als Ziel "+ localhost" fest: + "wobei" "die Nummer des Ports ist, auf dem Jupyter Notebook ausgeführt wird.

Klicken Sie nun auf die Schaltfläche * Hinzufügen *, und die Ports sollten in der Liste * Weitergeleitete Ports * angezeigt werden:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/forwarded_ports_putty.png [Liste der weitergeleiteten Ports]

Klicken Sie abschließend auf die Schaltfläche * Öffnen *, um eine Verbindung zum Server über SSH herzustellen und die gewünschten Ports zu tunneln. Navigieren Sie in einem Webbrowser zu "+ http: // localhost: " (oder dem von Ihnen gewählten Port), um eine Verbindung zu Jupyter Notebook herzustellen, das auf dem Server ausgeführt wird. Stellen Sie sicher, dass die Token-Nummer enthalten ist, oder geben Sie die Token-Nummer ein, wenn Sie unter ` http: // localhost: 8000 +` dazu aufgefordert werden.

Schritt 6 - Verwenden von Jupyter Notebook

In diesem Abschnitt werden die Grundlagen der Verwendung von Jupyter Notebook erläutert. Wenn Jupyter Notebook derzeit nicht ausgeführt wird, starten Sie es mit dem Befehl "+ jupyter notebook".

Sie sollten jetzt mit einem Webbrowser verbunden sein. Jupyter Notebook ist sehr leistungsstark und verfügt über viele Funktionen. In diesem Abschnitt werden einige grundlegende Funktionen beschrieben, mit denen Sie das Notebook verwenden können. Jupyter Notebook zeigt alle Dateien und Ordner in dem Verzeichnis an, in dem es ausgeführt wird. Wenn Sie also an einem Projekt arbeiten, müssen Sie es aus dem Projektverzeichnis starten.

Um eine neue Notebook-Datei zu erstellen, wählen Sie oben rechts im Pulldown-Menü * Neu *> * Python 3 *:

Dies öffnet ein Notizbuch. Wir können jetzt Python-Code in der Zelle ausführen oder die Zelle in Markdown ändern. Ändern Sie beispielsweise die erste Zelle, um Markdown zu akzeptieren, indem Sie in der oberen Navigationsleiste auf * Cell *> * Cell Type *> * Markdown * klicken. Wir können jetzt Notizen mit Markdown schreiben und sogar in LaTeX geschriebene Gleichungen einfügen, indem wir sie zwischen die Symbole "+ $$ +" setzen. Geben Sie beispielsweise Folgendes in die Zelle ein, nachdem Sie sie in Markdown geändert haben:

# Simple Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Drücken Sie die Tastenkombination "+ STRG + EINGABETASTE +", um die Markierung in Rich Text umzuwandeln. Die folgenden Ergebnisse sollten angezeigt werden:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/markdown_results.png [Ergebnisse des Markdowns]

Mit den Markdown-Zellen können Sie Notizen machen und Ihren Code dokumentieren. Lassen Sie uns diese einfache Gleichung implementieren und das Ergebnis ausdrucken. Klicken Sie auf die oberste Zelle und drücken Sie "+ ALT + EINGABETASTE +", um eine Zelle darunter hinzuzufügen. Geben Sie den folgenden Code in die neue Zelle ein.

x = 2
y = x**2
print(y)

Um den Code auszuführen, drücken Sie "+ STRG + EINGABE". Sie erhalten die folgenden Ergebnisse:

image: https: //assets.digitalocean.com/articles/eng_python/JupyterNotebookPy3/jupyter-notebook-md-python.png [einfache Gleichungsergebnisse]

Sie können jetzt import modules und das Notebook wie in jeder anderen Python-Entwicklungsumgebung verwenden !

Fazit

Herzliche Glückwünsche! Sie sollten nun in der Lage sein, mit Jupyter Notebook reproduzierbaren Python-Code und Notizen in Markdown zu schreiben. Um eine kurze Einführung in Jupyter Notebook über die Benutzeroberfläche zu erhalten, wählen Sie im oberen Navigationsmenü die Option * Hilfe *> * Benutzeroberflächentour *, um weitere Informationen zu erhalten.

Ab hier können Sie unsere Reihe unter Time Series Visualization and Forecasting lesen.