Programmieren für Anfänger

Python lernen leicht gemacht

15.05.2020
Von 
Serdar Yegulalp schreibt für unsere US-Schwesterpublikation Infoworld.

Die richtige Python-IDE finden

Um Software mit Python zu entwickeln, bräuchten Sie im Grunde nur einen Text-Editor und eine Laufzeitumgebung - zumindest in der Theorie. In der Praxis ist eine IDE mit Python-Support aber ziemlich hilfreich, wenn das Ergebnis über das eines trivialen Skripts hinausgehen soll.

Wenn Sie bereits Software mit einer IDE entwickeln, können Sie die wahrscheinlich auch für das Programmieren mit Python einsetzen, denn die meisten beliebten IDEs unterstützen die Programmiersprache:

  • Beide Microsoft-IDEs - Visual Studio und Visual Studio Code - bieten über Extensions exzellenten Python-Support. Wer seinen Workflow bereits auf diese IDEs ausgerichtet hat, muss lediglich noch die entsprechenden Addons installieren.

  • Eclipse kommt vor allem in Verbindung mit Java zum Einsatz, unterstützt über Addons aber auch Python. Alternativ könnten Sie auch LiClipse nutzen. Dabei handelt es sich um eine um zahlreiche, vorinstallierte Python-Addons angereicherte Edition der Eclipse IDE.

  • Viele MacOS-User schwören auf den Sublime Text-Editor wegen seiner Geschwindigkeit und einfachen Nutzerführung. Entwicklern bietet Sublime Text einen Python-Interpreter und viele Plugins, die in Python geschrieben wurden.

  • Vim und Emacs bieten ebenfalls starken Python-Support - der noch weiter ausgebaut werden kann. Im Fall von Vim mit dem Python-Mode Plugin, bei Emacs über Addons.

Daneben gibt es auch einige dedizierte IDEs für Python, die eine Reihe von Use Cases abdecken:

  • IDLE kommt im Bundle mit CPython und eignet sich, um schnell Skripte zusammen zu "schmeißen" und Anfänger bei Problemen zu unterstützen.

  • PyCharm wird oft empfohlen - und das aus gutem Grund: Die IDE bietet Support für viele native Python-Tools (zum Beispiel Jupyter Notebooks). Dabei bleibt PyCharm trotzdem zugänglich und einfach zu bedienen.

  • Komodo ist die IDE von ActiveState und eignet sich daher vor allem für das Zusammenspiel mit ActivePython. Ein Einsatz mit CPython ist jedoch auch problemlos möglich.

  • Spyder richtet sich hauptsächlich an Wissenschaftler und Statistik-Experten und weniger an die allgemeine Python-Entwickler-Community.

Python Packages?

Wenn Sie eine Distribution wie ActivePython oder Anaconda nutzen, sind viele Python-Bibliotheken von Drittanbietern entweder bereits vorinstalliert oder über ein Tool zugänglich. Bei CPython - und einigen anderen - kommen Sie nicht in den Genuss solcher Annehmlichkeiten. Hier gestaltet sich die Einbindung von Drittanbieter-Bibliotheken etwas schwieriger.

Die Python Software Foundation hält eine riesige Sammlung von Bibliotheken vorrätig: den Python Package Index (PyPI). Jedes dieser Packages kann über das pip-Kommandozeilen-Tool hinzugefügt werden. Allerdings erfordern einige dieser Pakete Binärdateien, die für spezifische Plattformen gemacht sind. Und nicht jedes PyPI-Package beinhaltet Binärdateien für jede Plattform. Dieses Problem zu bewältigen, ist bei Linux kein Problem. Hier ist es generell möglich, binaries auch "on the fly" zu erstellen. Bei Windows ist das nicht der Fall.

Eine (zumindest teilweise) Lösung kommt von Christoph Gohlke von der University of California: Er bietet eine - inoffizielle - Sammlung vorgefertigter Windows-binaries für viele Python Packages. Viele der Packages sind wiederum in erster Linie für wissenschaftliche Applikationen oder maschinelles Lernen (zum Beispiel NumPy und TensorFlow) gedacht. Viele decken aber auch etwas breiter gefasste Nutzungsszenarien ab (zum Beispiel Pillow für Bildbearbeitung oder den asynchronen http-Server Aiohttp).

Wenn Sie Windows nutzen

Für bestimmte Python-Programmier-Projekte brauchen Windows-Nutzer einige Handgriffe mehr als die User von Linux, MacOS und anderen Unix-basierten Betriebssystemen. Eine häufig fehlende "Zutat", die vom Windows-Entwickler gestellt werden muss, ist ein C Compiler. Python braucht diesen für einige Packages, um bestimmte Module bilden zu können, die nicht im Binär-Format vorliegen. Cython beispielsweise übersetzt Python in C-Code und braucht einen C Compiler um funktionierende binaries zu produzieren.

Die gute Nachricht: Microsofts hauseigener C Compiler kommt bereits mit der kostenlosen Community Edition von Visual Studio. Außerdem steht Ihnen die Möglichkeit offen, die Gnu Compiler Collection (GCC) zu installieren. Weil der C Compiler in Visual Studio aber auch für CPython auf Windows zur Anwendung kommt, verspricht dessen Nutzung auch ein konsistenteres Nutzererlebnis.

Das LLVM Compiler Framework ist ein Drittanbieter-Zusatz, der typischerweise nicht standardmäßig vertreten ist, den Sie aber dennoch brauchen könnten. Einige Python-Projekte wie Numba nutzen LLVM.

Zu guter Letzt müssen Windows-Nutzer standardmäßig auch auf Revision Control Software wie Git verzichten. In der Folge könnten einige IDEs die Zusammenarbeit verweigern. Deshalb sollten Sie Git für Windows entweder manuell herunterladen oder es über Chocolatey installieren.

Halten Sie Ihren Python-Code sauber

Die meisten Programmiersprachen bieten Funktionen wie statische Code-Analyse oder "syntax standardization". Bei Python erledigt eine Kollektion von Packages diese Aufgaben. Alle größeren IDEs bieten hierfür Support, es macht also Sinn, diese zu ihrem Arbeitsplatz hinzuzufügen.

PEP 8 ist ein Python Code-Styleguide. Wenn Sie dessen Regeln auf Ihre Codebasis anwenden wollen, erledigt das Tool autopep8 das automatisiert, bringt Ihren Python-Programmcode auf Linie und zeigt Warnungen an, wenn bestimmte Stellen im Code Beachtung verlangen. Die meisten IDEs mit Python-Support akzeptieren autopep8 als Standard-Formatter.

Ein neues Projekt in Sachen Code-Formatierung ist yapf. Dieses ursprünglich von Google entwickelte Tool formatiert Ihre Dokumente komplett und entfernt alle bestehenden Formatierungen (und Reformatierungen), die nach PEP8-Regeln vorgenommen wurden.

Dynamische Programmiersprachen wie Python erlauben Entwicklern kleinere Bugs. Im Fall von Python gibt es unterstützende Tools, um diese zu verhindern. Zum Beispiel Pylint, das lange Zeit als das Tool schlechthin für statische Datenanalysen in Python galt oder Mypy.

Legen Sie Python Projekt-Templates an

Wenn Sie sich dabei erwischen, wie Sie immer wieder dieselben Projekte anlegen, sparen Sie sich doch etwas Nerven und Zeit und kreieren Sie eine Vorlage. Dafür gibt es mehrere Möglichkeiten: Zum Beispiel indem Sie ein Git Repository erstellen, das Sie laufend aktualisieren.

Mit Python können Sie das aber noch ein bisschen weiter treiben - und zwar mit Cookiecutter. Neue Python-Projekte können mit einem Cookiecutter-Template "ge-bootstrapped" werden. Diese Vorlagen können wiederum bei Git gespeichert und auf Anfrage auch geklont werden. Die Chancen stehen außerdem nicht schlecht, dass es bereits ein Cookiecutter-Template gibt, um Ihr Projekt zum Laufen zu bringen. Selbst kreierte Templates können übrigens auch geteilt werden.

Programmieren mit Python in virtuellen Umgebungen

Je mehr Python-Projekte sie starten, desto mehr Bibliotheken kommen zum Einsatz. Beispiel: Sie wollen ein Legacy-Projekt behalten, das auf einer alten Version von etwas aufbaut und gleichzeitig einen Ersatz bauen, der auf den neueren Versionen der gleichen Bibliotheken aufbaut.

Bei Python gibt es einen Weg, um dieses Problem zu umgehen: virtuelle Umgebungen. Denn die erlauben einem Projektordner, seine eigenen lokalen Kopien der Bibliotheken vorzuhalten, deren Versionen neuer sind, als die auf dem Interpreter installierten. Das Gros der Arbeit übernimmt das Kommandozeilen-Tool virtualenv, das auch den Wechsel zwischen verschiedenen virtuellen Umgebungen ermöglicht. Mit dem Tool virtualenvwrapper lässt sich das Erstellen virtueller Umgebungen automatisieren. Die Chancen, dass Ihre IDE virtuelle Python-Umgebungen unterstützt, stehen gut - wie das Beispiel PyCharm zeigt.

Eine Alternative zu virtuellen Umgebungen ist die Nutzung einer Standalone-Installation der Python-Laufzeitumgebung. CPython für Windows kann zum Beispiel als "embeddable zip file" heruntergeladen werden und bringt dann eine eigene Minimalinstallation von Python mit. Wenn Sie bestimmte Funktionen in verschiedenen Versionen einer Laufzeitumgebung für Python testen wollen und nicht jede Version eigens installieren wollen, ist diese Lösung für Sie gemacht.

Unterstützen Sie andere Python-Einsteiger

Wenn Sie ein Python-Projekt kreiert haben, von dem Sie glauben, dass es für andere User hilfreich sein könnte: Teilen Sie es mit der Community! (fm)

Dieser Artikel basiert auf einem Beitrag unserer US-Schwesterpublikation infoworld.com.