Python schnell einrichten: So geht's auf Windows, Linux und macOS
Seite 5: Versionen und Module ohne Chaos
Python-Skripte nutzen meist Module, die Funktionen bereitstellen, um ein Rad nicht neu erfinden zu müssen. Im offiziellen Python Package Index finden Sie inzwischen Hunderttausende davon für jeden Zweck, die Sie leicht installieren können. Der Teufel steckt jedoch im Detail, denn es ist durchaus möglich, dass zwei Skripte auf Ihrem System nicht nur unterschiedliche Python-Versionen, sondern auch unterschiedliche Modulversionen voraussetzen. Und wenn man immer wieder die vom gerade ausprobierten Skript geforderten Module nachrüstet, verliert man leicht den Überblick.
Damit das nicht im Chaos endet, arbeiten Sie am besten von Anfang an mit virtuellen Umgebungen (Virtual Environments, kurz venv). Es bietet sich an, fĂĽr jedes neue Projekt ein solches venv zu erstellen. So wird jedes Skript mit den exakt passenden Zutaten versorgt, die es braucht. Das klingt komplizierter, als es ist: Wenn Sie ein venv erstellen, erzeugen Sie damit im Wesentlichen einen neuen Ordner. Aktivieren Sie das venv, arbeitet Python anschlieĂźend mit diesem Ordner und speichert neu installierte Module ausschlieĂźlich darin. Diese sind nur innerhalb der jeweiligen virtuellen Umgebung erreichbar und kommen so der globalen Python-Installation und anderen Skripten nicht in die Quere. Neben den Modulen ist die Python-Version durch das venv vorgegeben, damit auch alles zusammen passt.
Seit Python 3.3 gehört das venv-Modul zum Lieferumfang; eine neue virtuelle Umgebung namens env (können Sie beliebig ändern) entsteht mit nur einem Befehl:
python3 -m venv env
Er legt in diesem Beispiel ein Verzeichnis env an, und zwar unterhalb des Verzeichnisses, in dem Sie sich gerade befinden. Führt der Befehl unter Linux zu einem Fehler, müssen Sie noch das Paket python[version]-venv mit sudo apt install aus dem Repo installieren. Alternativ können Sie pip nutzen: pip3 install virtualenv. Danach können Sie in die virtuelle Umgebung wechseln. Unter Linux und macOS genügt zur Aktivierung des venv der folgende Befehl: source env/bin/activate. Unter Windows führen Sie das Skript activate.bat aus, das venv für Sie angelegt hat, im einfachsten Fall mit env\Scripts\activate.bat.
Anschließend erscheint env, der Name der Umgebung, in Klammern vor der Eingabezeile. Daran erkennen Sie, dass Sie im venv unterwegs sind. Jetzt können Sie ein beliebiges Python-Modul installieren, um die virtuelle Umgebung zu testen – zum Beispiel requests, das HTTP(S)-Anfragen absetzen kann. Nutzen Sie dazu den Paketinstaller pip: pip3 install requests.
Wenn der Befehl nicht funktioniert, können Sie den Paketmanager über python3 -m pip erreichen. Klappt auch das nicht, müssen Sie pip zunächst nachinstallieren. Sie finden ihn zum Beispiel als python3-pip im Ubuntu-Repository. Falls sich pip beschwert, dass es nicht auf dem aktuellen Stand ist, können Sie es mit pip3 install --upgrade pip erneuern.
Nach der Installation des requests-Moduls innerhalb des venv finden Sie es im Dateisystem unterhalb von env\Lib\site-packages, wo es nur für das venv erreichbar ist. Mit deactivate können Sie das venv jederzeit wieder verlassen. Um es zu löschen, können Sie einfach dessen Ordner eliminieren.
Wenn Sie fremde Skripte ausführen möchten, ist die Wahrscheinlichkeit sehr hoch, dass es Module voraussetzt, die Sie noch nicht installiert haben. Diese sind üblicherweise in einer Datei namens requirements.txt aufgelistet, die dem Skript beiliegt. Doch keine Sorge, Sie müssen diese Liste nicht von Hand abklappern, stattdessen können Sie den Paketmanager damit füttern: pip3 install -r requirements.txt
Der Paketmanager installiert anschließend nach und nach die geforderten Python-Module. Außerhalb eines venv sorgt --user dafür, dass Module nur für den aktiven User und nicht systemweit installiert werden, wodurch sie auf sudo verzichten können. Darüber hinaus gibt es weitere nützliche pip-Kommandos. Mit pip3 freeze > requirements.txt etwa generieren Sie eine Liste der installierten Module, die Sie mit Ihrem Skript weitergeben können. Mit pip3 uninstall modulname werden Sie ein Modul wieder los.
Mehr Komfort mit pipenv
Das Hantieren mit den virtuellen Umgebungen geht schnell in Fleisch und Blut über. Wenn Sie sich das Leben damit vereinfachen möchten, kann sich ein Blick auf pipenv lohnen, das virtuelle Umgebungen und Paketinstallationen auf komfortable Weise kombiniert. Sie installieren es mit pip3 install pipenv.
Falls pip dabei eine Warnung anzeigt, laut der das Installationsverzeichnis nicht in der Umgebungsvariable PATH steht, mĂĽssen Sie den angegebenen Pfad noch dem PATH hinzufĂĽgen und sich neu anmelden, damit die folgenden Befehle funktionieren.
Anschließend erstellen Sie ein Verzeichnis für Ihr Projekt und wechseln mit cd hinein. Wenn Sie jetzt mit pipenv install paketname ein beliebiges Paket installieren, legt pipenv zunächst automatisch eine neue Umgebung an. Im Anschluss wird das gewünschte Paket heruntergeladen und installiert.
Mit pipenv shell starten Sie eine Shell in der virtuellen Umgebung und mit pipenv run skript.py können Sie von außen direkt ein Skript darin ausführen. Das Tool hat diverse weitere Tricks auf Lager und kann Ihr Projekt etwa mit pipenv check auf Sicherheitslücken abklopfen. Der folgende Befehl generiert Ihnen eine requirements.txt: pipenv lock -r > requirements.txt. Zudem gibt es weitere Kniffe in der Dokumentation.
Bequeme Anaconda
Sie kennen jetzt die wichtigsten Grundlagen, um Python auf Ihrem System an den Start zu bringen und damit zu arbeiten. Die Einrichtung ist mit etwas Handarbeit verbunden, bietet Ihnen aber auch die Gelegenheit, die grundlegenden Abläufe zu verstehen. Mit Anaconda (Download) existiert auch ein umfangreiches Python-Installationspaket für Windows, Linux und macOS, das Ihnen die Arbeit hinter den Kulissen weitestgehend abnimmt, sodass Sie sich ganz auf Ihre Skripte konzentrieren können. Es ist mit über 500 MByte jedoch nicht gerade schlank und Sie bekommen wahrscheinlich mehr, als Sie brauchen: Neben Python bringt Anaconda gleich noch die Entwicklungsumgebung (IDE) Spyder, die Python-Experimentierumgebung Jupyter Notebook und etliche Python-Pakete mit.
Anaconda wurde für Datenauswertungen und KI-Experimente zusammengestellt, insbesondere das GUI-Programm Anaconda Navigator dürfte aber auch für Einsteiger interessant sein: Über "Environments" kann man damit per Mausklick virtuelle Umgebungen erstellen, die eine wählbare Python-Version nutzen. Ist diese noch nicht auf dem System installiert, erledigt der Manager dies automatisch. Mit einem Klick auf den Play-Knopf öffnet man ein Terminal oder eine Python-Shell in der ausgewählten Umgebung. Die jeweils installierten Modulpakete listet das Tool grafisch auf, zudem kann man die verfügbaren Pakete komfortabel durchsuchen und nachrüsten. Hinter den Kulissen arbeitet ein eigener Paketmanager namens conda.
Den Komfortgewinn zahlen Sie mit Abhängigkeit: Anaconda ist kommerzielle Software. Die Firma Anaconda Inc. bietet eine kostenlose "Individual Edition" an, Unternehmen ab einer Größe von 200 Mitarbeitern müssen jedoch zu einer der kostenpflichtigen Editionen greifen. Es gibt keine Garantie dafür, dass sich die aktuellen Nutzungsbedingungen in der Zukunft nicht zu Ihrem Nachteil ändern.