So richten Sie ein Jupyter-Notebook ein, um IPython unter Ubuntu 16.04 auszuführen

Einführung

IPython ist eine interaktive Befehlszeilenschnittstelle zu Python. Jupyter Notebook bietet eine interaktive Weboberfläche für viele Sprachen, einschließlich IPython.

In diesem Artikel werden Sie durch die Einrichtung eines Servers für die Ausführung von Jupyter Notebook geführt und erfahren, 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 beide Computercodes enthalten (z. Python) und Rich-Text-Elemente (Absätze, Gleichungen, Abbildungen, Links usw.), die die Darstellung reproduzierbarer Recherchen erleichtern.

Am Ende dieses Handbuchs können Sie Python 2.7-Code mit Ipython und Jupyter Notebook auf einem Remote-Server ausführen. In diesem Lernprogramm wird Python 2 (2.7.x) verwendet, da viele der Bibliotheken für Data Science, Scientific Computing und High Performance Computing 2.7 und nicht 3.0+ unterstützen.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie Folgendes:

Alle Befehle in diesem Lernprogramm sollten als Benutzer ohne Rootberechtigung ausgeführt werden. Wenn für den Befehl root-Zugriff erforderlich ist, wird vor + sudo + angezeigt. Initial Server Setup mit Ubuntu 16.04 erläutert, wie Benutzer hinzugefügt und ihnen sudo-Zugriff gewährt werden.

Schritt 1 - Installieren von Python 2.7 und Pip

In diesem Abschnitt werden wir Python 2.7 und Pip installieren.

Aktualisieren Sie zunächst den Paketindex des Systems. Dadurch wird sichergestellt, dass alte oder veraltete Pakete die Installation nicht beeinträchtigen.

sudo apt-get update

Installieren Sie als Nächstes Python 2.7, Python Pip und Python Development:

sudo apt-get -y install python2.7 python-pip python-dev

Durch die Installation von + python2.7 + wird auf die neueste Version von Python 2.7 aktualisiert, und + python-pip + installiert Pip, mit dem wir die Python-Pakete verwalten können, die wir verwenden möchten. Einige der Abhängigkeiten von Jupyter müssen möglicherweise kompiliert werden. In diesem Fall benötigen Sie die Fähigkeit, Python-C-Erweiterungen zu kompilieren. Daher installieren wir auch "+ python-dev +".

So überprüfen Sie, ob Python installiert ist:

python --version

Dies wird Folgendes ausgeben:

OutputPython 2.7.11+

Abhängig von der neuesten Version von Python 2.7 kann die Ausgabe unterschiedlich sein.

Sie können auch mit dem folgenden Befehl überprüfen, ob pip installiert ist:

pip --version

Sie sollten etwas Ähnliches wie das Folgende tun:

Outputpip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

In ähnlicher Weise kann die Ausgabe je nach Pip-Version leicht abweichen.

Schritt 2 - Installieren von Ipython und Jupyter Notebook

In diesem Abschnitt installieren wir Ipython und Jupyter Notebook.

Installieren Sie zuerst Ipython:

sudo apt-get -y install ipython ipython-notebook

Jetzt können wir mit der Installation von Jupyter Notebook fortfahren:

sudo -H pip install jupyter

Abhängig davon, welche Version von pip sich im Ubuntu apt-get-Repository befindet, wird möglicherweise die folgende Fehlermeldung angezeigt, wenn Sie versuchen, Jupyter zu installieren:

OutputYou 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.

In diesem Fall 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 erneut, Jupyter zu installieren:

sudo -H pip install jupyter

Schritt 3 - Jupyter Notebook ausführen

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

jupyter notebook

Wenn Sie Jupyter auf einem System mit installiertem JavaScript ausführen, wird es weiterhin ausgeführt, es kann jedoch zu einer Fehlermeldung führen, dass für das Jupyter-Notizbuch JavaScript erforderlich ist:

OutputJupyter Notebook requires JavaScript.
Please enable it to proceed.
...

Um den Fehler zu ignorieren, können Sie + Q + und dann + Y + drücken, um zu bestätigen.

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, wird normalerweise auf Port ++ ausgeführt. 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 NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels
[I NotebookApp] The Jupyter Notebook is running at: http://localhost/
[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 ausführen (nicht auf einem Droplet), können Sie einfach zu "+ localhost +" 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 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels

Schritt 4 - 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 Droplets ausgeführt wird (z. B. ": 8888 +", ": 8889 +" usw.), können Sie durch SSH-Tunneling eine sichere Verbindung zum Port des Droplets herstellen.

In den nächsten beiden Unterabschnitten wird beschrieben, wie Sie einen SSH-Tunnel aus 1) einem Mac oder Linux und 2) Windows erstellen. 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, ähneln die Schritte zum Erstellen eines SSH-Tunnels den Schritten unter https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets [ So verwenden Sie SSH-Schlüssel mit DigitalOcean Droplets unter Linux oder Mac 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 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 (Droplet) weitergeleitet werden soll. Dies bedeutet, dass alles, was auf der zweiten Portnummer läuft (d. H. "") auf dem Droplet erscheint an der ersten Portnummer (d. h. ``) auf Ihrem lokalen Computer. Sie sollten "" in den Port ändern, auf dem Jupyter Notebook ausgeführt wird. Ändern Sie optional den Port "" in einen Ihrer Wahl (zum Beispiel, wenn "+ 8000 " von einem anderen Prozess verwendet wird). Verwenden Sie einen Port größer oder gleich " 8000 +" (dh "", "" usw.), um die Verwendung eines Ports zu vermeiden, der bereits von einem anderen Prozess verwendet wird. "" ist Ihr Benutzername (d. h. sammy) auf dem von Ihnen erstellten Droplet und "" ist die IP-Adresse Ihres Droplets. 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 Jupyter Notebook ausführen:

jupyter notebook

Öffnen Sie nun in einem Webbrowser auf Ihrem lokalen Computer die Jupyter Notebook-Weboberfläche mit + http: // localhost: + (oder einer beliebigen von Ihnen gewählten Portnummer).

SSH-Tunneling mit Windows und Putty

Unter Windows können Sie mit Putty auch problemlos einen SSH-Tunnel erstellen, wie in https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean beschrieben -droplets-windows-users [Verwendung von SSH-Schlüsseln mit PuTTY in DigitalOcean Droplets (Windows-Benutzer)].

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 (dh "", "" usw.), um Ports zu vermeiden, die von anderen Diensten verwendet werden, und legen Sie als Ziel "+ localhost: +" fest, wobei "" die Anzahl von ist der Port, 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.

Schritt 5 - Verwenden von Jupyter Notebook

In diesem Abschnitt werden die Grundlagen der Verwendung von Jupyter Notebook erläutert. Zu diesem Zeitpunkt sollte Jupyter Notebook ausgeführt werden, und Sie sollten über einen Webbrowser mit Jupyter 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 automatisch alle Dateien und Ordner in dem Verzeichnis an, in dem es ausgeführt wird.

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

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. Wählen Sie * Einfügen *> * Zelle darunter einfügen *, um eine Zelle einzufügen, und geben Sie den folgenden Code ein:

x = 2
y = x*x
print y

Um den Code auszuführen, drücken Sie "+ STRG + EINGABE". Folgendes sollte das Ergebnis sein:

image: https: //assets.digitalocean.com/articles/jupyter_notebook/equations_results.png [simple equation results]

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

Fazit

Herzliche Glückwünsche! Sie sollten nun in der Lage sein, reproduzierbaren Python-Code und Notizen mithilfe von Markdown mit einem Jupyter-Notizbuch zu schreiben, das auf einem Droplet ausgeführt wird. Um einen kurzen Überblick über das Jupyter-Notebook zu erhalten, wählen Sie im oberen Navigationsmenü die Option * Hilfe *> * Benutzeroberflächentour *.