miniconda & Co

Mein Beitrag zum Kampf mit pip unter meinem Linux-System hat  tatsächlich zu Reaktionen geführt und ich habe einen interessanten Tipp in dem Kontext bekommen (Danke Hendrik!). Ich solle miniconda verwenden, um darüber virtuelle Umgebungen für Python zu verwalten. Interessanterweise habe ich zu conda und miniconda im Rahmen meiner Behandlung von Anaconda und dem Jupyter Notebook in verschiedenen Videokursen bei LinkedIn Learning (Lil) mehrere Videos veröffentlicht (zuletzt wieder bei dem ganzen neuen Training zu CPython). Aber selbst nutze ich Anaconda eigentlich gar nicht, da ich mit pip immer zufrieden war und bisher auch in der Praxis keine virtuellen Umgebungen für Python benötigt habe. Deshalb habe ich miniconda bzw. conda ziemlich ignoriert. Der Hinweis von Hendrik, wie  komfortabel miniconda virtual environments ist sowie die (extrem sinnvollen!!) Beschränkungen der Basisumgebung von Python unter meinem Linux haben mich motiviert, das zu ändern.

Ausprobiert und das geht ja wirklich extrem einfach.

„miniconda & Co“ weiterlesen

pipx und virtuelle Python-Umgebungen

Mein „Crash“ gestern Abend hatte ja die Ursache, dass ich pip unter meiner Python-Installation vermisst und dann ein paar „destruktive“ Ansätze zur Lösung versucht habe. Heute morgen habe ich dann das Problem beseitigt, wobei ich gerne zugebe, dass ChatGPT wieder unterstützt hat. Wobei man die richtigen Fragen stellen und die Antworten als auch Fehlermeldungen und Ausgaben vernünftig verstehen und Tipps anpassen muss (was ich als meine Eigenleistung sehe). Gestern habe ich ja erfahren, was ein blindes Verwenden von Vorschlägen bedeutet. Doch als Spoiler zuerst meine beiden Lösungen, worüber ich pip jetzt verwenden kann, um fehlende Module wie pandas, numpy, matplotlib etc. auf meinem Linux Mint 22 zu installieren:

  1. pipx
  2. Eine virtuelle Umgebung
  3. Eine alternative Python-Installation wie zusätzliches CPython oder IronPython nutzen

Die Frage, ob ich nicht bis 3 zählen kann, weil ich von „beiden“ Lösungen rede, soll in der Antwort münden, dass ich die ersten beiden ausprobiert habe und die mir vollständig genügen.

Doch erst einmal die Ursache für mein Problem. Ich habe pip bzw. pip3 erst einmal nicht gefunden und dann trotz verschiedener Aufrufanweisungen nicht ausführen können. Der Ausgangsfehler war im Prinzip die Fehlermeldung:

error: externally-managed-environment

× This environment is externally managed

Irgendwann hatte ich diese eigentlich sehr aussagekräftige Fehlermeldung auch endlich mal verstanden. Der Fehler tritt auf, weil unter meinem Linux-System mein Python-Umfeld als „extern verwaltet“ betrachtet wird und das darin resultiert, dass das System den direkten Einsatz von pip für die Installation von Paketen in der globalen Python-Umgebung nicht zulässt. „pipx und virtuelle Python-Umgebungen“ weiterlesen

Timeshift

Oha. Eben habe ich mir doch glatt mein Mint Linux zerschossen und musste es mittels Timeshift wiederbeleben. Also nicht Linux selbst, sondern im Grunde nur Python. Aber das hat apt und apt-get samt der kompletten Anwendungsverwaltung ins Grab gezogen. Nix ging mehr mit Aktualisieren, Bereinigen oder Neuinstallieren. Das zerbröselte Python hat jedesmal zum Abbruch der Aktionen geführt. Richtig brutal. Dabei wollte ich bloß das kleine Problem beseitigen, dass bei meiner Installation von Python unter meinem Mint Linux 22 pip nicht installiert ist. „Timeshift“ weiterlesen

Ausnahmsweise Donnerstag

Diese Woche ist erst am Donnerstag der neue Entwickler-Tipp zu Python bei LinkedIn Learning freigeschaltet worden. Es geht hier darum, wie man aus Python eine automatische Quelltextdokumentation generieren kann. So eine Dokumentation von Softwareprojekten ist eine oft leidige, aber immens wichtige Aufgabe und in nahezu allen modernen Programmiersprachen gibt es Möglichkeiten, diese Dokumentation aus dem Quellcode heraus etwas zu erleichtern, indem man bestimmte Token in den Quellcode schreibt und daraus eine HTML-Dokumentation oder auch in einem anderen Format erzeugt werden. In Python kann man etwa pydoc bzw. dessen Fork pydoc3 verwendet werden, was in dem Tipp gezeigt wird.