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 [2019/10/01 10:51]
bbrauns [Installation zusätzlicher Python Module]
de:services:application_services:jupyter:start [2019/10/08 14:34] (aktuell)
bwegman1
Zeile 41: Zeile 41:
 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 ==== ==== Installation zusätzlicher Pakete per Conda in einem eigenen Environment ====
-== Create conda env == 
-<​code>​jovyan@a83435296f64:​~$ conda create --prefix ./​myawesomecondaenv</​code>​ 
  
-== Create custom jupyter kernel == +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.
-<​code>​ jovyan@a83435296f64:​~$ python3 -m ipykernel install --user --name=myawesomecondaenv</​code>+
  
-== Activate ​conda env ==  +Bevor mit ''​conda''​ gearbeitet wird, sollten die Conda-Funktionen geladen werden (<​b>​Punkt am Anfang beachten!</​b>​):​ 
-<​code>​ +<​code ​bash
-jovyan@a83435296f64:​~$ ​. /​opt/​conda/​etc/​profile.d/​conda.sh +. /​opt/​conda/​etc/​profile.d/​conda.sh
-jovyan@a83435296f64:​~$ conda activate ./​myawesomecondaenv+
 </​code>​ </​code>​
  
-== Install new version of python3 ​==  +=== Erstellen eines neuen Environments ​===
-<​code>​(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ conda install python=3.6 </​code>​+
  
-== Conda env must have jupyter packages to serve a notebook == +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.
-<​code>​(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ python3 ​-m pip install jupyter </​code>​+
  
-== Edit python interpreter path == +Erstellen und Aktivieren des Environments:​ 
-<​code>​ +<​code ​bash
-(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ sed  -i "​s|/​opt/​conda/​bin/​python3|$(readlink ​-f myawesomecondaenv/​bin/​python3)|" ​.local/share/​jupyter/​kernels/​myawesomecondaenv/​kernel.json +conda create ​-y --prefix ​./wikidoku 
-(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ cat .local/share/​jupyter/​kernels/​myawesomecondaenv/​kernel.json +conda activate ​./wikidoku
-+
- "​argv":​ [ +
-  "/​home/​jovyan/​myawesomecondaenv/​bin/​python3",​ +
-  "​-m",​ +
-  "​ipykernel_launcher",​ +
-  "​-f",​ +
-  "​{connection_file}"​ +
- ], +
- "​display_name":​ "​myawesomecondaenv",​ +
- "​language":​ "​python"​ +
-}+
 </​code>​ </​code>​
  
-== Check kernelspec== ​ +Als nächstes wird beispielhaft das Paket ''​jinja2''​ installiert. An dieser Stelle kann nun beliebig Software aus beliebigen Conda-Channels installiert werden. 
-<​code>​(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ jupyter kernelspec list</​code>​+<​code ​bash> 
 +conda install -y jinja2 
 +</​code>​
  
-== Install custom packages== ​ +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>​(/​home/​jovyan/​myawesomecondaenvjovyan@a83435296f64:​~$ ​conda install chameleon</​code>​+<​code ​bash> 
 +python3 -m ipykernel install --user --name wikidoku --display-name "​Python ​(wikidoku)
 +jupyter kernelspec list 
 +conda deactivate 
 +</​code>​
  
-== Deactivate conda env ==  +Sollte die Installation des Kernels mit der Fehlermeldung abbrechen ''​/usr/bin/pythonNo module named ipykernel'',​ dann muß zuerst das ''​jupyter''​-Module in dem aktuellen Environment installiert werden: 
-<​code>​(/home/jovyan/myawesomecondaenv) jovyan@a83435296f64:~$ conda deactivate</​code>​+<code bash> 
 +python3 -m pip install jupyter 
 +</​code>​
  
-== Restart notebook server== +=== Auswählen eines Environments ​===
-Control Panel -> Stop My Server -> Start My Server +
-  +
-== Create notebook with new kernel == +
-New -> Notebook: myawesomecondaenv+
  
-== Import package into notebook ​== +== Neustart des Notebook-Servers ​==
-<​code>​import chameleon</​code>​+
  
-=== Installation von größeren Python Modulen ​und Disk Space ===+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.
  
-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öpftDie 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:+Ü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> <code bash>
-mkdir -v ~/.user-temp +conda install ​-y python=2.
-TEMP=~/.user-temp pip install ​--user <module>+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>​ </​code>​
  
-Der Präfix mit TEMP lässt pip diesen Ort für dieses eine Installation für temporäre Daten verwenden. 
 ==== Installation zusätzlicher R Pakete ==== ==== Installation zusätzlicher R Pakete ====
 <​code>​ <​code>​
Zeile 132: 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