Wie man ein Jupyter-Notebook einrichtet, um IPython auf Ubuntu 16.04 auszuführen
Verwendest du nicht Ubuntu 16.04?Wähle eine andere Version oder Distribution aus.
Einführung
IPython ist eine interaktive Befehlszeilenschnittstelle für Python. Jupyter Notebook bietet eine interaktive Webschnittstelle für viele Sprachen, einschließlich IPython.
Dieser Artikel wird Ihnen zeigen, wie Sie einen Server einrichten, um Jupyter Notebook auszuführen, sowie wie Sie sich mit dem Notebook verbinden und es verwenden. Jupyter-Notebooks (oder einfach Notebooks) sind Dokumente, die von der Jupyter Notebook-App erstellt werden und sowohl Computer-Code (z. B. Python) als auch reichhaltige Textelemente (Absätze, Gleichungen, Abbildungen, Links usw.) enthalten, die bei der Präsentation reproduzierbarer Forschung helfen.
Am Ende dieses Leitfadens werden Sie in der Lage sein, Python 2.7-Code mit Ipython und Jupyter Notebook, die auf einem Remote-Server ausgeführt werden, auszuführen. Für die Zwecke dieses Tutorials wird Python 2 (2.7.x) verwendet, da viele der Bibliotheken für Datenwissenschaft, wissenschaftliches Rechnen und Hochleistungsrechnen 2.7 unterstützen und nicht 3.0+.
Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie Folgendes:
- Ubuntu 16.04 Tropfen
- Nicht-Root-Benutzer mit Sudo-Rechten (Die Anleitung zur ersten Servereinrichtung mit Ubuntu 16.04 erklärt, wie man dies einrichtet.)
Alle Befehle in diesem Tutorial sollten als Nicht-Root-Benutzer ausgeführt werden. Wenn für den Befehl Root-Zugriff erforderlich ist, wird er mit sudo vorausgegangen. Die Anleitung zur Erstkonfiguration des Servers mit Ubuntu 16.04 erklärt, wie man Benutzer hinzufügt und ihnen sudo-Rechte gewährt.
Schritt 1 — Installation von Python 2.7 und Pip
In diesem Abschnitt werden wir Python 2.7 und Pip installieren.
Zuerst aktualisieren Sie den Paketindex des Systems. Dies stellt sicher, dass alte oder veraltete Pakete die Installation nicht beeinträchtigen.
- sudo apt-get update
Als nächstes installieren Sie Python 2.7, Python Pip und die Python-Entwicklung:
- sudo apt-get -y install python2.7 python-pip python-dev
Die Installation von python2.7 wird auf die neueste Version von Python 2.7 aktualisieren, und python-pip wird Pip installieren, mit dem wir die Python-Pakete verwalten können, die wir verwenden möchten. Einige von Jupyter abhängigen Paketen erfordern möglicherweise eine Kompilierung, in diesem Fall benötigen Sie die Fähigkeit, Python-C-Erweiterungen zu kompilieren, daher installieren wir auch python-dev.
Um zu überprüfen, ob Sie Python installiert haben:
- python --version
Dies wird ausgeben:
Python 2.7.11+
Je nach der neuesten Version von Python 2.7 kann die Ausgabe unterschiedlich sein.
Sie können auch überprüfen, ob pip installiert ist, indem Sie den folgenden Befehl verwenden:
- pip --version
Sie sollten etwas Ähnliches wie das Folgende tun:
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
Ähnlich kann die Ausgabe je nach Ihrer Version von pip leicht unterschiedlich sein.
Schritt 2 — Ipython und Jupyter Notebook installieren
In diesem Abschnitt werden wir Ipython und Jupyter Notebook installieren.
Zuerst Ipython installieren:
- sudo apt-get -y install ipython ipython-notebook
Jetzt können wir mit der Installation von Jupyter Notebook fortfahren:
- sudo -H pip install jupyter
Je nach der Version von pip im Ubuntu apt-get-Repository könnte beim Versuch, Jupyter zu installieren, der folgende Fehler auftreten:
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Falls ja, können Sie pip verwenden, um pip auf die neueste Version zu aktualisieren:
- sudo -H pip install --upgrade pip
Aktualisieren Sie pip und versuchen Sie dann, Jupyter erneut zu installieren:
- sudo -H pip install jupyter
Schritt 3 — Jupyter Notebook ausführen
Sie haben jetzt alles, was Sie benötigen, um Jupyter Notebook auszuführen! Um es zu starten, führen Sie den folgenden Befehl aus:
- jupyter notebook
Wenn Sie Jupyter auf einem System mit installiertem JavaScript ausführen, wird es weiterhin funktionieren, aber es könnte Ihnen einen Fehler anzeigen, dass das Jupyter-Notebook JavaScript benötigt:
Jupyter Notebook requires JavaScript.
Please enable it to proceed.
...
Um den Fehler zu ignorieren, können Sie Q drücken und dann Y drücken, um zu bestätigen.
Ein Protokoll der Aktivitäten des Jupyter Notebooks wird im Terminal ausgegeben. Wenn Sie Jupyter Notebook ausführen, läuft es auf einer bestimmten Port-Nummer. Das erste Notebook, das Sie ausführen, läuft normalerweise auf dem Port 8888. Um die spezifische Port-Nummer zu überprüfen, auf der Jupyter Notebook ausgeführt wird, beziehen Sie sich auf die Ausgabe des Befehls, der verwendet wurde, um es zu starten:
[I NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels
[I NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Wenn Sie Jupyter Notebook auf einem lokalen Linux-Computer (nicht auf einem Droplet) ausführen, können Sie einfach zu localhost:8888 navigieren, um eine Verbindung zu Jupyter Notebook herzustellen. Wenn Sie Jupyter Notebook auf einem Droplet ausführen, müssen Sie eine Verbindung zum Server über SSH-Tunneling herstellen, wie im nächsten Abschnitt beschrieben.
An diesem Punkt können Sie die SSH-Verbindung offen lassen und Jupyter Notebook weiterlaufen lassen oder die App verlassen und sie erneut starten, sobald Sie SSH-Tunneling eingerichtet haben. Lassen Sie uns es einfach halten und den Jupyter Notebook-Prozess stoppen. Wir werden ihn erneut ausführen, sobald das SSH-Tunneling funktioniert. Um den Jupyter Notebook-Prozess zu stoppen, drücken Sie CTRL+C, geben Sie Y ein und drücken Sie ENTER, um zu bestätigen. Folgendes wird angezeigt:
[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels
Schritt 4 — Verbindung zum Server über SSH-Tunneling herstellen
In diesem Abschnitt lernen wir, wie man mit SSH-Tunneling auf die Jupyter Notebook-Webschnittstelle zugreift. Da Jupyter Notebook auf einem bestimmten Port auf dem Droplet läuft (wie :8888, :8889 usw.), ermöglicht SSH-Tunneling eine sichere Verbindung zu dem Port des Droplets.
Die nächsten beiden Unterabschnitte beschreiben, wie man ein SSH-Tunnel von 1) einem Mac oder Linux und 2) Windows erstellt. Bitte beziehen Sie sich auf den Unterabschnitt für Ihren lokalen Computer.
SSH-Tunneling mit einem Mac oder Linux
Wenn Sie einen Mac oder Linux verwenden, sind die Schritte zum Erstellen eines SSH-Tunnels ähnlich wie im Leitfaden "So verwenden Sie SSH-Keys mit DigitalOcean Droplets unter Linux oder Mac", mit dem Unterschied, dass im ssh-Befehl zusätzliche Parameter hinzugefügt werden. Dieses Unterkapitel wird die zusätzlichen Parameter skizzieren, die im ssh-Befehl benötigt werden, um erfolgreich zu tunneln.
SSH-Tunneling kann durchgeführt werden, indem der folgende SSH-Befehl ausgeführt wird:
- ssh -L 8000:localhost:8888 your_server_username@your_server_ip
Der ssh-Befehl öffnet eine SSH-Verbindung, aber -L gibt an, dass der angegebene Port auf dem lokalen (Client-)Host an den angegebenen Host und Port auf der entfernten Seite (Droplet) weitergeleitet werden soll. Das bedeutet, dass alles, was auf der zweiten Portnummer (d.h. 8888) auf dem Droplet läuft, auf der ersten Portnummer (d.h. 8000) auf Ihrem lokalen Computer erscheinen wird. Sie sollten 8888 auf den Port ändern, auf dem Jupyter Notebook läuft. Optional können Sie den Port 8000 auf einen Ihrer Wahl ändern (zum Beispiel, wenn 8000 von einem anderen Prozess verwendet wird). Verwenden Sie einen Port größer oder gleich 8000 (z.B. 8001, 8002 usw.), um zu vermeiden, dass ein bereits von einem anderen Prozess verwendeter Port genutzt wird. server_username ist Ihr Benutzername (z.B. sammy) auf dem Droplet, das Sie erstellt haben, und your_server_ip ist die IP-Adresse Ihres Droplets. Zum Beispiel, für den Benutzernamen sammy und die Serveradresse 111.111.111.111, wäre der Befehl:
- ssh -L 8000:localhost:8888 sammy@111.111.111.111
Wenn nach dem Ausführen des ssh -L Befehls kein Fehler angezeigt wird, können Sie das Jupyter Notebook starten:
- jupyter notebook
Öffnen Sie jetzt von einem Webbrowser auf Ihrem lokalen Computer die Jupyter Notebook-Weboberfläche mit http://localhost:8000 (oder welcher Portnummer auch immer Sie gewählt haben).
SSH-Tunneling mit Windows und PuTTY
Wenn Sie Windows verwenden, können Sie auch ganz einfach einen SSH-Tunnel mit PuTTY erstellen, wie in 'So verwenden Sie SSH-Schlüssel mit PuTTY auf DigitalOcean-Droplets (Windows-Benutzer)' beschrieben.
Zuerst geben Sie die Server-URL oder IP-Adresse als Hostnamen ein, wie unten gezeigt:
Klicken Sie als Nächstes auf SSH am unteren Rand des linken Fensters, um das Menü zu erweitern, und klicken Sie dann auf Tunnels. Geben Sie die lokale Portnummer ein, die Sie verwenden möchten, um auf Jupyter auf Ihrem lokalen Computer zuzugreifen. Wählen Sie 8000 oder höher (z. B. 8001, 8002 usw.), um Ports zu vermeiden, die von anderen Diensten verwendet werden, und setzen Sie das Ziel auf localhost:8888, wobei :8888 die Nummer des Ports ist, auf dem Jupyter Notebook läuft. Klicken Sie nun auf die Schaltfläche Hinzufügen, und die Ports sollten in der Liste Weitergeleitete Ports angezeigt werden:
Klicken Sie schließlich auf die Öffnen-Schaltfläche, um über SSH eine Verbindung zum Server herzustellen und die gewünschten Ports zu tunneln. Navigieren Sie zu http://localhost:8000 (oder welchem Port auch immer Sie gewählt haben) in einem Webbrowser, um eine Verbindung zum Jupyter Notebook herzustellen, das auf dem Server läuft.
Schritt 5 — Verwendung von Jupyter Notebook
Dieser Abschnitt behandelt die Grundlagen der Verwendung von Jupyter Notebook. Zu diesem Zeitpunkt sollten Sie Jupyter Notebook ausführen und über einen Webbrowser damit verbunden sein. Jupyter Notebook ist sehr leistungsfähig und verfügt über viele Funktionen. Dieser Abschnitt skizziert einige der grundlegenden Funktionen, um Ihnen den Einstieg in die Verwendung des Notebooks zu erleichtern. Automatisch zeigt Jupyter Notebook alle Dateien und Ordner im Verzeichnis an, von dem aus es ausgeführt wird.
Um eine neue Notizbuchdatei zu erstellen, wählen Sie Neu > Python 2 aus dem Dropdown-Menü oben rechts:
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 auf Cell > Cell Type > Markdown in der oberen Navigationsleiste klicken. Wir können nun Notizen mit Markdown schreiben und sogar Gleichungen, die in LaTeX geschrieben sind, einfügen, indem wir sie zwischen den $$-Symbolen setzen. Geben Sie zum Beispiel 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$
Um das Markdown in Rich Text umzuwandeln, drücken Sie CTRL+ENTER, und das Folgende sollten die Ergebnisse sein:
Sie können die Markdown-Zellen verwenden, um Notizen zu machen und Ihren Code zu dokumentieren. Lassen Sie uns diese einfache Gleichung umsetzen und das Ergebnis ausgeben. Wählen Sie Einfügen > Zelle darunter einfügen, um eine Zelle einzufügen und den folgenden Code einzugeben:
x = 2
y = x*x
print y
Um den Code auszuführen, drücken Sie CTRL+ENTER. Die folgenden Ergebnisse sollten angezeigt werden:
Sie haben jetzt die Möglichkeit, Bibliotheken einzufügen und das Notizbuch zu verwenden, wie Sie es in jeder anderen Python-Entwicklungsumgebung tun würden!
Schlussfolgerung
Herzlichen Glückwunsch! Sie sollten nun in der Lage sein, reproduzierbaren Python-Code und Notizen mit Markdown im Jupyter-Notebook, das auf einem Droplet läuft, zu schreiben. Um eine schnelle Einführung in das Jupyter-Notebook zu erhalten, wählen Sie Hilfe > Benutzeroberflächen-Tour im oberen Navigationsmenü.




