[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(anaconda_logo.png, 48, align=left)]] [https://www.anaconda.com/ Anaconda] {en} ist eine [:Python:]-Distribution, welche auf wissenschaftliches Arbeiten und die Analyse von (großen) Datenmengen ausgelegt ist. Anaconda ist kostenlos und frei - und besteht auch aus freier Software - die hinter dem Projekt stehende Firma [https://www.continuum.io/ Continuum Analytics] {en} bietet aber zusätzlichen kommerziellen Support an. Anaconda bringt alles nötige mit, inklusive dem Python-Interpreter. Dadurch ist es unabhängig vom darunter liegenden System. Anaconda an sich enthält keine Python-Module, die man nicht auch auf anderem Wege wie über die Paketverwaltung oder [:pip:] installieren könnte. Der Vorteil von Anaconda ist, dass man sich nicht selber um das Auflösen der teils komplexen Abhängigkeiten kümmern muss. Außerdem besitzt Anaconda einen eigenen Paketmanager namens [#conda conda], der alle Pakete innerhalb der Distribution aktuell hält. Eine komplette Übersicht über die enthaltenen Python-Module findet man in der [http://docs.continuum.io/anaconda/packages/pkg-docs/ Dokumentation] {en}. In Anaconda enthalten ist auch [#Numba Numba], ein Just-in-Time Compiler, mit dem die Ausführung von Python-Code erheblich beschleunigt werden kann. = Installation = Anaconda muss manuell installiert werden. Dazu lädt man von der [https://www.anaconda.com/products/individual Downloadseite] {en} {dl} die passende Datei herunter. Zur Auswahl steht eine Version mit Python 3.x für 64-bit-Systeme. Der Download ist ca. 500 MiB groß. Nachdem die Datei heruntergeladen ist, führt man diese im Terminal[1] aus, z.B.: {{{#!vorlage Befehl bash Anaconda3-2020.2-Linux-x86_64.sh }}} Die Angaben `2020.2` ist dabei ggf. je nach heruntergeladener Version anzupassen. [[Vorlage(Fremd, Software)]] Standardmäßig installiert Anaconda alle Programme in das [:Homeverzeichnis:] des Benutzers in ein eigenes Unterverzeichnis namens '''~/anaconda3''' (Anaconda für Python 3). Möchte man ein anderes Zielverzeichnis, dann kann man dies im Installationsassistenten bei der entsprechenden Frage eingeben. Zum Schluss fragt der Installer, ob das Installationsverzeichnis von Anaconda dem Suchpfad für Programme hinzugefügt werden soll. Antwortet man hier mit ''"ja"'', dann wird der entsprechende Eintrag in der Datei '''~/.bashrc''' vorgenommen. {{{#!vorlage Warnung Fügt man Anaconda dem Suchpfad hinzu, dann kann sich dies ggf. auf das gesamte System auswirken. So findet z.B. der Aufruf von `python3` zuerst den von Anaconda installierten Interpreter für Python 3 - welcher aber eventuell eine andere Version haben kann wie der, der systemweit installiert ist. Was wiederum im schlechtesten Fall dazu führt, dass Programme für Python 3 nicht mehr wie erwartet funktionieren. Um dies zu verhindern, muss man bei der oben genannten Frage ''"nein"'' auswählen, dann laufen das System-Python und Anaconda problemlos nebeneinander, ohne Konflikte. }}} == Miniconda == [https://docs.conda.io/en/latest/miniconda.html Miniconda] {en} ist "nur" der Kern von Anaconda, d.h. der Python Interpreter und der Paketmanager [#conda Conda]. Die etlichen Python-Module, die bei der Vollinstallation von Anaconda mit installiert werden, werden bei Miniconda nicht installiert. Miniconda bietet sich also dann an, wenn man die Vorteile von Anaconda nutzen müsste, aber selber die Kontrolle darünber haben möchte, welche Python-Module installiert werden soll. Ein Vergleich der beiden ist auf der [https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html#anaconda-or-miniconda Anaconda-Seite] {en} zu finden. = Benutzung = Nach der Installation ist die Anaconda-Distribution bzw. die darin enthaltene Software einsatzbereit. Im Folgenden wird davon ausgegangen, dass Anaconda im Homeverzeichnis (z.B. '''~/anaconda3''') installiert ist und dass man Anaconda nicht dem Suchpfad hinzugefügt hat. Zuerst wechselt man ins Unterverzeichnis '''bin'''. Hier kann man dann z.B. {{{#!vorlage Befehl ./python3 ## python3 Interpreter ./idle3 ## IDLE IDE für Python 3 ./ipython ## IPython interaktive Shell }}} aufrufen. Innerhalb der von Anaconda installierten Python-Interpreter bzw. Shells/IDEs können nur Python-Module importiert werden, welche Anaconda mit installiert hat. Andere, unabhängig von Anaconda installierte Module sind nicht sichtbar. Umgekehrt kann der systemweite Python-Interpreter auch keine Module importieren, welche in Anaconda installiert sind. == conda == conda ist der Paketmanager von Anaconda, der aber auch andere Aufgaben wie das Anlegen von virtuellen Umgebungen übernimmt. Der allgemeine Aufruf, ebenfalls im Unterverzeichnis '''bin''' lautet: {{{#!vorlage Befehl ./conda BEFEHL OPTION(EN) }}} === Paketverwaltung === Mit conda können weitere Python-Module innerhalb von Anaconda nachinstalliert: {{{#!vorlage Befehl ./conda install --name MODUL }}} oder auch wieder entfernt werden: {{{#!vorlage Befehl ./conda remove --name MODUL }}} Mit dem Befehl {{{#!vorlage Befehl ./conda update conda }}} wird conda selbst aktualisiert. Eine komplette Befehlsübersicht ist in der [http://conda.pydata.org/docs/using/pkgs.html Dokumentation] {en} zu finden. === Virtuelle Umgebungen === Die Nutzung von virtuellen Umgebungen entspricht [:venv:], wird aber über conda gesteuert. Zum Anlagen von virtuellen Umgebungen dient der Befehl: {{{#!vorlage Befehl conda create --name NAME MODUL(E) }}} `NAME` und `MODUL` sind dabei Pflichtangaben. Möchte man die virtuelle Umgebung aktivierten, so wechselt man in deren Verzeichnis ('''envs/NAME''') und führt dort den Befehl {{{#!vorlage Befehl source bin/activate NAME }}} aus. Deaktiviert wird die virtuelle Umgebung über: {{{#!vorlage Befehl source deactivate }}} Eine Übersicht über alle angelegten virtuellen Umgebung - ausgeführt im '''bin''' Verzeichnis der Anaconda-Installation - liefert: {{{#!vorlage Befehl ./conda env list }}} Eine komplette Übersicht über virtuellen Umgebungen mit conda findet man in der [http://conda.pydata.org/docs/using/envs.html Dokumentation] {en}. = Numba = [https://numba.pydata.org/ Numba] {en} ist ein Just-in-Time Compiler, welcher standardmäßig bei Anaconda mit installiert wird, ansonsten über den Befehl {{{#!vorlage Befehl conda install numba }}} nachinstalliert werden kann. Die Verwendung von Numba ist ganz einfach, da man lediglich die Funktion, die mit Hilfe des Numa Just-in-Time Compilers ausgeührt werden soll, mit einem Dekarotor versehen muss: {{{#!code python from numba import jit @jit def is_prime(n): if n % 2 == 0: return False sqrt_n = int(math.floor(math.sqrt(n))) for i in range(3, sqrt_n + 1, 2): if n % i == 0: return False return True is_prime(2327074306453592351) }}} Die Verwendung von Numba macht immer dann Sinn, wenn eine Funktion eine rechenintensive Aufgabe - wie im obigen Beispiel - ausführt, da die Ausführung so um ein vielfaches schneller ist. Weitere Informationen zu Numba findet man in der [http://numba.pydata.org/numba-doc/latest/index.html Dokumentation] {en} von Numba. = Deinstallation = Zur Deinstallation löscht man einfach das komplette Installationsverzeichnis inklusive aller Unterverzeichnisse. Hat man Anaconda dem Suchpfad hinzugefügt, dann muss man zusätzlich noch die `PATH` Variable in der Datei '''.bashrc''' editieren und den Eintrag entfernen, welche auf den Installationspfad von Anaconda zeigt. = Links = * [https://docs.anaconda.com/ Dokumentation] {en} zu Anaconda * [http://conda.pydata.org/docs/ Dokumentation] {en} zu conda #tag: Programmierung, Python