Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:services:application_services:jupyter:start [2018/11/01 09:23]
bbrauns [Zusätzlichen kernel mit pipenv bereitstellen]
de:services:application_services:jupyter:start [2019/10/08 14:34]
bwegman1
Zeile 1: Zeile 1:
 ====== Jupyter / Jupyter-Hub ====== ====== Jupyter / Jupyter-Hub ======
  
-Die GWDG bietet [[https://​jupyter.gwdg.de|Jupyter-Hub]] ​ im [[de:​services:​application_services:​jupyter:​beta|offenen Testbetrieb]] für interessierte Benutzer von Python, Julia, R oder haskell ​an.+Die GWDG bietet [[https://​jupyter.gwdg.de|Jupyter-Hub]] ​ im [[de:​services:​application_services:​jupyter:​beta|offenen Testbetrieb]] für interessierte Benutzer von Python, Julia oder an.
  
 ===== Was ist Jupyter / Jupyter-Hub?​ ===== ===== Was ist Jupyter / Jupyter-Hub?​ =====
  
-Juyter bietet die Möglichkeit im Browser interaktiv mit Python, Juliaoder haskell ​zu arbeiten. Quellcode kann dabei in einem Editor im Browser eingegeben, ausgeführt und überarbeitet werden. Diese Schritte passieren in einem s.g. "​Notebook"​. Jedes Notebook hat einen s.g. "​Kernel"​ der den Typ des Notebooks bestimmt, also ein Python-, Julia-R- oder haskell-Notebook.+Juyter bietet die Möglichkeit im Browser interaktiv mit Python, Julia oder R zu arbeiten. Quellcode kann dabei in einem Editor im Browser eingegeben, ausgeführt und überarbeitet werden. Diese Schritte passieren in einem s.g. "​Notebook"​. Jedes Notebook hat einen s.g. "​Kernel"​ der den Typ des Notebooks bestimmt, also ein Python-, Julia- ​oder R--Notebook.
  
 Jupyter-Hub ist das Portal, an dem sich der Benutzer anmeldet, seine laufenden Notebooks verwaltet oder neue startet. Jupyter-Hub ist das Portal, an dem sich der Benutzer anmeldet, seine laufenden Notebooks verwaltet oder neue startet.
  
-Bitte beachten Sie, dass Jupyter auch auf dem [[https://​info.gwdg.de/​docs/​doku.php?​id=en:​services:​application_services:​high_performance_computing:​jupyter|SCC]] betrieben werden kann, falls höhere Berechnungsressourcen benötigt werden.+Bitte beachten Sie, dass Jupyter auch auf dem [[https://​info.gwdg.de/​docs/​doku.php?​id=en:​services:​application_services:​jupyter:hpc|SCC]] betrieben werden kann, falls höhere Berechnungsressourcen benötigt werden.
 ===== Wie wird Jupyter / Jupyter-Hub verwendet? ===== ===== Wie wird Jupyter / Jupyter-Hub verwendet? =====
  
Zeile 40: Zeile 40:
 ==== Installation zusätzlicher Python Module ==== ==== Installation zusätzlicher Python Module ====
 Zusätzliche Python Module können über das Terminal und den Python package manager "​pip"​ installiert werden. Hierzu muss über das Menü "​New"​ -> "​Terminal"​ ein Terminal geöffnet werden. Anschließend wird mit <​code>​pip install --user <​module></​code>​ ein neues Modul in das Home-Verzeichnis installiert. Zusätzliche Python Module können über das Terminal und den Python package manager "​pip"​ installiert werden. Hierzu muss über das Menü "​New"​ -> "​Terminal"​ ein Terminal geöffnet werden. Anschließend wird mit <​code>​pip install --user <​module></​code>​ ein neues Modul in das Home-Verzeichnis installiert.
 +
 +=== Installation von größeren Python Modulen und Disk Space ===
 +
 +Die Installation von größeren Python Modulen wie z.B. "​tensorflow"​ kann mit einer Fehlermeldung "No space left on device"​ abbrechen, da pip bei der Verarbeitung größerer Module den Platz unter "/​tmp"​ ausschöpft. Die folgenden Schritte legen ein neues Verzeichnis für temporäre Daten im wesentlich größeren Benutzerverzeichnis an, welches pip dann für diese Installation benutzt:
 +
 +<code bash>
 +mkdir -v ~/​.user-temp
 +TEMP=~/​.user-temp pip install --user <​module>​
 +</​code>​
 +
 +Der Präfix mit TEMP lässt pip diesen Ort für dieses eine Installation für temporäre Daten verwenden.
 +
 +=== Notebook startet nicht mehr nach Paketinstallation oder Update, Fehler 500 ===
 +
 +Sollte nach einem Upgrade von Paketen oder Installation neuer Pakete kein Notebook mehr startbar sein (Fehler 500), kann es helfen, im Terminal den Pfad ''​.local''​ umzubenennen:​
 +<code bash>
 +mv -v .local/ .local.gwdg-disable
 +</​code>​
 +Dadurch werden alle zusätzlich durch ''​pip''​ installierten Pakete deaktiviert. Das Notebook sollte sich dann wieder starten lassen.
 +==== Installation zusätzlicher Pakete per Conda in einem eigenen Environment ====
 +
 +Die Verwaltung von Softwarepaketen und Environments mit Conda erfolgt in einer Terminal-Sitzung des Notebook-Servers. Dazu muß nach der Anmeldung am Dienst eine Terminal über ''​New -> Terminal''​ gestartet werden.
 +
 +Bevor mit ''​conda''​ gearbeitet wird, sollten die Conda-Funktionen geladen werden (<​b>​Punkt am Anfang beachten!</​b>​):​
 +<code bash>
 +. /​opt/​conda/​etc/​profile.d/​conda.sh
 +</​code>​
 +
 +=== Erstellen eines neuen Environments ===
 +
 +Im Folgenden wird ein neues, einfaches Conda-Environment ''​wikidoku''​ erstellt, beispielhaft das Python-Modul ''​jinja2''​ installiert und das Environment für das Notebook verfügbar gemacht.
 +
 +Erstellen und Aktivieren des Environments:​
 +<code bash>
 +conda create -y --prefix ./wikidoku
 +conda activate ./wikidoku
 +</​code>​
 +
 +Als nächstes wird beispielhaft das Paket ''​jinja2''​ installiert. An dieser Stelle kann nun beliebig Software aus beliebigen Conda-Channels installiert werden.
 +<code bash>
 +conda install -y jinja2
 +</​code>​
 +
 +Das nun aktivierte Environment wird dem Notebook-Server bekannt gemacht. ''​--name''​ und ''​--display-name''​ können frei gewählt werden, letzteres wird später in der Auswahl des Notebooks angezeigt. Der zweite Befehl listet alle bekannten Environments auf.  Abschließend wird das Environment verlassen.
 +<code bash>
 +python3 -m ipykernel install --user --name wikidoku --display-name "​Python (wikidoku)"​
 +jupyter kernelspec list
 +conda deactivate
 +</​code>​
 +
 +Sollte die Installation des Kernels mit der Fehlermeldung abbrechen ''/​usr/​bin/​python:​ No module named ipykernel'',​ dann muß zuerst das ''​jupyter''​-Module in dem aktuellen Environment installiert werden:
 +<code bash>
 +python3 -m pip install jupyter
 +</​code>​
 +
 +=== Auswählen eines Environments ===
 +
 +== Neustart des Notebook-Servers ==
 +
 +Wurde ein neues Environment erstellt, muß zunächst der Notebook-Server neu gestartete werden. Dazu alle offenen Terminals und Notebooks schließen und in der Jupyter-Übersicht oben rechts auf ''​Control Panel''​ klicken. Mit ''​Stop My Server''​ den Notebook-Server anhalten und mit ''​Start My Server''​wieder starten.
 +
 +Über ''​New ->''​ kann nun ein neues Notebook mit dem neue Environment gestartet werden. Bei einem vorhandenen Notebook kann nach dem Öffnen der Kernel gewechselt werden über das Menü ''​Kernel -> Change Kernel''​.
 +
 +=== Installieren anderer Kernel in einem Conda-Environment ===
 +
 +Die Installation eines eigenständigen Python-Kernels nur für das aktuelle Environment ist möglich. Hier wird beispielhaft die Installation eines alten python-2.7-Kernels gezeigt.
 +
 +Ein neues Environment wird nach den o.g. Schritten erzeugt und aktiviert.
 +Danach erfolgt die Installation der Kernels, des ''​jupyter''​-Moduls für den Kernel und abschließend wird der neue Kernel für den Notebook-Server aktiviert:
 +<code bash>
 +conda install -y python=2.7
 +python -m pip install jupyter
 +python -m ipykernel install --user --name oldpython --display-name "​Python 2.7 (oldpython)"​
 +</​code>​
 +
 +Der neue Kernel steht nun in neu-gestarteten Notebooks (s.o.) in der Kernel-Auswahl zur Verfügung.
 +Die aktuelle Kernel-Version kann in einem Notebook überprüft werden mit den folgendem Code:
 +<code python>
 +import sys
 +print (sys.version)
 +</​code>​
 +
 +=== Environment entfernen ===
 +
 +Um ein Environment zu entfernen, wird es vom Notebook-Server abgemeldet und dann die zugehörigen Dateien gelöscht (optional, aber empfohlen).
 +
 +<code bash>
 +jupyter kernelspec list
 +jupyter kernelspec remove wikidoku
 +rm -rf ./wikidoku
 +</​code>​
  
 ==== Installation zusätzlicher R Pakete ==== ==== Installation zusätzlicher R Pakete ====
Zeile 68: Zeile 159:
  
 <​code>​ <​code>​
-jovyan@0d5793127e96:​~$ ​ls mynotebooks/​+ls mynotebooks/​
 myfile.txt myfile.txt
-jovyan@0d5793127e96:​~$ ​rsync -av ~/​mynotebooks/​ bbrauns@login.gwdg.de:/​usr/​users/​bbrauns/​mynotebooks/​+rsync -av ~/​mynotebooks/​ bbrauns@login.gwdg.de:/​usr/​users/​bbrauns/​mynotebooks/​
 bbrauns@login.gwdg.de'​s password: bbrauns@login.gwdg.de'​s password:
 sending incremental file list sending incremental file list
Zeile 121: Zeile 212:
 (Server neustarten) (Server neustarten)
 </​code>​ </​code>​
 +