Wiss. Rechnen » Miniconda
 

Achtung: Diese Seite beschäftigt sich mit dem OMNI-Cluster! Auf dem HoRUS-Cluster steht diese Software nicht zur Verfügung.


Die Anaconda-Distribution ist eine Kollektion von Software für wissenschaftliche Zwecke. Sie enthält eine Python-Installation, eine R-Installation, sowie den Paketmanager Conda, der zur Installation von Anaconda-Paketen benutzt werden kann. Da die komplette Anaconda-Distribution mit allen Paketen sehr viel Speicherplatz verbraucht, gibt es außerdem die Variante Miniconda, die nur Python, Conda sowie ein paar grundlegende Pakete enthält. Beide Varianten sind vollständig kostenlos und Open-Source.

Auf dem OMNI-Cluster steht Miniconda zur Verfügung. Es basiert auf Python 3.8.5 und Conda 4.9.2. Um Miniconda zu verwenden, muss das Modul miniconda3 geladen werden:

module load miniconda3

Die Dokumentation von Conda finden Sie hier. Eine vollständige Übersicht über verfügbare Pakete der Anaconda-Distribution gibt es hier. Beachten Sie, dass Conda auch Pakete von Drittanbietern installieren kann und mehrere Quellen (in Conda “Channels” genannt) verwalten kann. Der wichtigste Community-Channel ist conda-forge.

Einrichtung von Conda

Sie verwenden Conda im wesentlichen mit dem Befehl conda. Beispielsweise können Sie sich mit:

conda help

eine Übersicht der möglichen Conda-Befehle anzeigen lassen. Ein vollständige Liste finden Sie in der Dokumentation zu Conda hier.

Wenn Sie Conda zum ersten Mal verwenden, müssen Sie es mit dem Befehl conda init initialisieren, und dann die Shell schließen und neu öffnen (zum Beispiel indem Sie die SSH-Verbindung zum Cluster beenden und sich neu verbinden). Hier ist der Befehl mit einem Beispieloutput:

[demo_user@hpc-login01 ~]$ conda init
no change     /cm/shared/omni/apps/miniconda3/condabin/conda
no change     /cm/shared/omni/apps/miniconda3/bin/conda
no change     /cm/shared/omni/apps/miniconda3/bin/conda-env
no change     /cm/shared/omni/apps/miniconda3/bin/activate
no change     /cm/shared/omni/apps/miniconda3/bin/deactivate
no change     /cm/shared/omni/apps/miniconda3/etc/profile.d/conda.sh
no change     /cm/shared/omni/apps/miniconda3/etc/fish/conf.d/conda.fish
no change     /cm/shared/omni/apps/miniconda3/shell/condabin/Conda.psm1
no change     /cm/shared/omni/apps/miniconda3/shell/condabin/conda-hook.ps1
no change     /cm/shared/omni/apps/miniconda3/lib/python3.8/site-packages/xontrib/conda.xsh
no change     /cm/shared/omni/apps/miniconda3/etc/profile.d/conda.csh
modified      /home/js056352/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

(Nach Logout und erneutem Login...)

(base) [demo_user@hpc-login01 ~]$

Es sind zwei Sachen zu erkennen: erstens hat conda init die .bashrcDatei des Users modifiziert (wenn Sie in der Datei nachschauen, können Sie sehen, dass die PATH-Variable modifiziert wurde). Zweitens zeigt die Kommandozeile nun links (base) an. Dies ist das aktive Conda-Environment. Conda-Environments werden im nächsten Abschnitt erklärt.

Achtung: Es besteht die Gefahr von unbeabsichtigten Seiteneffekten, wenn Sie das Modul miniconda3 laden oder entladen, insbesondere nach einem conda init, da dann die Reihenfolge der Verzeichnisse in der PATH-Variable verändert wird. Wir empfehlen, wenn Sie Miniconda verwenden, das Modul miniconda3 permanent aktiv zu haben, z.B. indem Sie module load miniconda3 vor dem conda initzu Ihrer .bashrc-Datei hinzufügen (siehe auch Linux-Grundlagen).

Auf dem Cluster stehen eine Reihe von verschiedenen Python-Installationen zur Verfügung. Wenn das Modul miniconda3 geladen wird, führen die Befehle python sowie python3 auf das standardmäßig mit Miniconda installierte Python. Sie können außerdem selbst ein eigenes Python installieren, dies wird im nächsten Abschnitt erklärt.

Sie haben noch weitere Möglichkeiten der Konfiguration von Conda, die hier erklärt sind.

Conda-Environments

Conda-Environments dienen, ähnlich wie die Virtual Environments von Python, dazu, Softwareinstallationen für verschiedene Projekte voneinander zu trennen. Conda Environments haben allerdings den Vorteil, dass sie nicht Python-intern sind. Achtung: Sie müssen mindestens ein eigenes Conda-Environment einrichten, da Sie in das Standard-Environment (base) keine Pakete installieren können. Sie können mit dem Befehl conda env list die verfügbaren Environments auflisten:

$ conda env list

# conda environments:
#
base                  *  /cm/shared/omni/apps/miniconda3
test                     /home/demo_user/.conda/envs/test
                         /home/demo_user/miniconda3

Wie Sie an diesem Beispieloutput erkennen können, befindet sich das base-Environment im Installationsverzeichnis, in dem normale Nutzer keine Schreibrechte haben, während selbst eingerichtete Environments in Ihrem Home-Verzeichnis stehen.

Sie erstellen ein eigenes Environment mit dem Befehl:

conda create --name <Envname>

Sie müssen ein Environment aktivieren, bevor Sie es verwenden können. Es empfiehlt sich außerdem, das Environment nach Benutzung wieder zu deaktivieren. Die Befehle dafür sind:

conda activate <Envname>

sowie

conda deactivate

Das aktive Environment wird Ihnen an der linken Seite der Kommandozeile in Klammern angezeigt. Wenn Sie überhaupt kein Environment aktiviert haben möchten, können Sie nochmals conda deactivate eingeben.

Mehr Informationen zu Conda-Environments finden Sie in der Conda-Dokumentation hier.

Installation von Paketen

Sie installieren Conda-Pakete mit dem Befehl:

conda install <Paketname>

Wie schon erwähnt, werden Conda-Pakete in einem Unterordner Ihres Homeverzeichnisses installiert. Wenn Sie eine Fehlermeldung über fehlende Schreibrechte bekommen, überprüfen Sie, dass Sie nicht versehentlich im base-Environment sind.

Achtung: wenn Sie Python-Pakete installieren möchten, sollten Sie sie, soweit möglich, mit conda install und nicht mit pip install installieren, da letzteres zu Konflikten führen kann.

Es sei außerdem nochmal darauf verwiesen, dass nicht nur Pakete aus dem offiziellen Conda-Repository installiert werden können. Conda hat, wie die meisten Paketmanager, die Möglichkeit, zusätzliche Channels hinzuzufügen. Ein wichtiger nicht-offizieller Channel ist beispielsweise conda-forge, der Community-Packages enthält. Die Installation von inoffiziellen Paketen erfolgt auf eigene Gefahr und sollte, soweit möglich, vermieden werden.

Detaillierte Informationen zu Conda-Paketen finden Sie in der Conda-Dokumentation hier, mehr zu Conda-Channels finden Sie hier. Eine vollständige Übersicht über verfügbare Pakete der Anaconda-Distribution gibt es hier.

Aktualisiert um 15:12 am 8. Februar 2021 von Jan Steiner