Python Umgebungen verwalten mit conda

Ich bin gerade etwas geflasht von conda (https://conda.io). Meine Lieblingssprache ist python und als Pythonentwickler hat man neben dem ewigen Python2 vs. Python3-Syntaxproblem auch immer noch das Problem, dass bestimmte Pakete (möglicherweise sogar in unterschiedlichen Versionen) in unterschiedlichen Projekten benötigt werden. Das ganze kann man jetzt mit natürlich auch über Virtualisierung lösen, aber das ist einigermaßen umständlich und ressourcenfressend, finde ich.

conda geht da einen etwas stringenteren Ansatz. Es schafft einen Ansatz aus eigenen Umgebungen (“environments”), die sich selber in der klassischen create, modifiy, delete-Idee verwalten lassen. Zusätzlich bietet conda die Funktion, Umgebungen zu exportieren und importieren, also wie man im Neuland sagt – zu teilen.

Innerhalb von conda befindet sich eine komplette Paketverwaltung, man kann also conda anstelle von pip verwenden, wobei conda die Pakete jeweils nur in die gerade aktive Umgebung installiert.

Wozu braucht man das?

Eine klassische Anwendung für conda sehe ich im Bereich Softwaretests in verschiedenen Umgebungen.

  • Läuft die Software auch in python3?
  • Wenn ich auf paketxy-0.0.5 bekomme ich dann deprecated-Meldungen?

Zudem ist es leichter, zwischen Entwicklern die gleiche Umgebung zu schaffen, um überhaupt valide Tests durchführen zu können. Außerdem schafft conda die Möglichkeit, eine Umgebung, die man vielleicht für einen Bugfix für eine fremde Software benötigt, nur temporär auf dem eigenen System zu halten, um es nicht zusätzlich zuzumüllen.

Ich will hier auch nicht den Eindruck aufkommen lassen, conda sei nur für python gedacht. Nein! Es kann sowohl Paketverwaltung für viele Sprachen mehr sein und läuft auch unter den drei wichtigen Betriebsystemen als Umgebungsverwaltung.

Wie sieht es aus?

Es gibt zahlreiche Videos zur Verwendung von conda. Mir hat dieses hier besonders gefallen, weil es die verschiedenen Möglichkeiten von conda nett zusammenfasst. Nicht über das lange Intro wundern. Der Sprecher erzählt erst einiges über den Einsatz von anaconda, als dem darüberliegenden Framework, welches conda enthält.

Schreibe einen Kommentar