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
Nächste Überarbeitung Beide Seiten der Revision
de:services:application_services:jupyter:start [2019/10/01 10:53]
bbrauns [Installation zusätzlicher Pakete per Conda in einem eigenen Environment]
de:services:application_services:jupyter:start [2019/10/07 14:55]
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 
-{ +</code> 
- "​argv": [ +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 angezeigtDer zweite Befehl listet alle bekannten Environments auf
-  "​/home/jovyan/​myawesomecondaenv/bin/python3"​, +<code bash> 
-  "-m", +python -m ipykernel install --user --name wikidoku --display-name ​"Python (wikidoku)
-  "​ipykernel_launcher",​ +jupyter kernelspec list 
-  "​-f", +</code> 
-  "​{connection_file}"​ +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> 
- "​display_name":​ "​myawesomecondaenv",​ +python ​-m pip install jupyter
- "​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. Abschließend wird das Environment verlassen. 
-<​code>​(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ jupyter kernelspec list</​code>​+<​code ​bash> 
 +conda install -y jinja2 
 +conda deactivate 
 +</​code>​
  
-== Install your custom packages ​==  +=== Auswählen eines Environments ===
-Sample package: <​code>​(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ conda install chameleon</​code>​+
  
-== Deactivate conda env ==  +== Neustart des Notebook-Servers ​==
-<​code>​(/​home/​jovyan/​myawesomecondaenv) jovyan@a83435296f64:​~$ conda deactivate</​code>​+
  
-== Restart notebook server== +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.
-Control Panel -> Stop My Server -Start My Server +
-  +
-== Create notebook with new kernel == +
-New -> Notebook: myawesomecondaenv+
  
-== Import package into notebook == +Ü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''​.
-<code>import chameleon</​code>+
  
-=== Installation von größeren Python Modulen und Disk Space ===+=== Installieren anderer Kernel in einem Conda-Environment ​===
  
-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:+Die Installation ​eines eigenständigen ​Python-Kernels nur für das aktuelle Environment ist möglichHier 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 ​-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>​ </​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 147:
  
 <​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