Python gilt gemeinhin als relativ einfache Programmiersprache - sowohl wenn es ums Lernen geht, als auch um die Anwendung des Erlernten. Experten zufolge eignet sich Python für eine ganze Reihe von Applikationen. Der Einstieg kann sich aber ebenso schwierig gestalten wie bei anderen Programmiersprachen. Jede Entscheidung, die Sie diesbezüglich treffen, hat Auswirkungen. Egal ob es dabei um das Betriebssystem, die Laufzeit- oder die Entwicklungsumgebung geht.
Aus diesem Grund haben wir alle wichtigen Schritte für den Einstieg in Python für Sie zusammengestellt. Wir zeigen Ihnen die verschiedenen Python-Distributionen, sagen Ihnen welche Entwicklungsumgebung sich am besten für Ihre Zwecke eignet und geben Ihnen Tools an die Hand, die Sie bestmöglich beim Programmieren mit Python unterstützen sollen. So sollten Ihnen die üblichen Fehler und Missgeschicke, die Anfänger oft heimsuchen, erspart bleiben.
Wahrscheinlich fragen Sie sich als erstes, welche Version von Python Sie am besten nutzen sollen. Antwort: Python 3. Das ist die aktuelle und zukunftssichere Version der Programmiersprache. Bei Python 2 handelt es sich nur noch um eine Legacy-Version, die aus Gründen der Rückwärtskompatibilität weiterhin unterstützt wird. Im Vergleich bietet Python 3 zwar dieselben Features wie Python 2, hat dabei aber deutliche Performance-Vorteile.
Wählen Sie Ihre Python-Plattform
Wie Ihr Einstieg ins Programmieren mit Python verläuft, hängt maßgeblich davon ab, welches Betriebssystem Sie als Entwicklungsumgebung nutzen wollen. Glücklicherweise ist die Programmiersprache für alle gängigen Betriebssysteme verfügbar. Darüber hinaus stehen auch diverse gute Editor-Programme und Entwicklungsumgebungen zur Verfügung.
Lesen Sie auch: Wie Sie Python richtig installieren
Achtung:Die Anweisungen in diesem Abschnitt beziehen sich auf die Standard-Version von Python, die von der Python Software Foundation herausgegeben wurde. Python ist auch in anderen Versionen verfügbar, von denen die eine oder andere eventuell besser zu Ihren Bedürfnissen passt. Sie sollten deshalb - bevor Sie irgendetwas installieren - zuerst den Abschnitt "Python-Distributionen im Überblick" lesen.
Microsoft Windows: Python ist standardmäßig kein Bestandteil von Windows. Das Zusammenspiel mit Microsofts Betriebssystem ist deswegen aber auch nicht besonders aufwendig: Eine Laufzeitumgebung downloaden, einige Buttons klicken - fertig. Wenn Sie den Package Manager Chocolatey für Windows nutzen (und warum auch nicht, wenn es das Leben leichter macht), tippen Sie einfach "choco install python3" in die Kommandozeile ein.
Linux: Zu so gut wie jeder größeren Linux-Distribution gehört inzwischen auch Python. Die Frage ist nur, ob Sie standardmäßig die neueste Version der Programmiersprache bekommen. Einige Linux-Distributionen kommen aus gutem Grund mit älteren Python-Versionen: Die Scripts sind nicht selten speziell für eine Distribution geschrieben und arbeiten deshalb auch nur mit einer bestimmten Version von Python. Wenn das der Fall ist, kommen Sie unter Umständen nicht darum herum, über den Package Manager eine ältere Python-Version zu installieren. Wenn Sie vermeiden wollen, dass verschiedene Versionen miteinander ins Gehege kommen. Hilft Ihnen dabei die Software pyenv.
macOS: Die Situation auf dem Mac-Betriebssystem ist ganz ähnlich zu der von Linux. Um Python 3 mit dem Mac zu nutzen, emfpiehlt es sich, auf den Homebrew Package Manager zurückgreifen. Für das Management empfiehlt sich wiederum pyenv.
Wenn Sie Docker installiert haben, können Sie auch einfach einen Container mit einer Python-Laufzeitumgebung erstellen und diesen als Basis für ein Projekt nutzen.
Python-Distributionen im Überblick
Python steht in einer Vielzahl unterschiedlicher Distributionen zur Verfügung. Sinn und Zweck dieser Vielfalt ist - wie bei Linux -, möglichst viele verschiedene Nutzungsszenarien bedienen zu können. Die folgende Zusammenstellung soll Ihnen einen Überblick über einige ausgewählte Distributionen verschaffen - nämlich die bekanntesten und meist genutzten.
CPython: Gemacht von der Python Software Foundation ist CPython die Basis-Laufzeitumgebung und so etwas wie eine "Allzweckwaffen"-Version. Neben Interpreter und Standard Bibliothek gehört auch ein Sammelsurium an Komponenten von Drittherstellern zum Lieferumfang.
Wissenswert ist in diesem Zusammenhang, dass es keinen direkten technischen Support für CPython gibt. Es gibt einen eingebauten Mechanismus für Packages von Drittanbietern namens pip, aber die Implementierung größerer und komplexerer Packages kann eine Herausforderung darstellen.
Geeignet für: Anfänger, die nicht viel wagen wollen und echte "Do-It-Yourselfer", die keine Angst davor haben, sich ihre Einzelteile selbst zusammen zu suchen.
ActivePython: ActiveState vermarktet eine ganze Reihe von Consumer- und Enterprise-Laufzeitumgebungen und IDEs (integrated development environment). ActivePython beinhaltet neben CPython auch dutzende, vorinstallierte Bibliotheken und geht deswegen deutlich unkomplizierter von der Hand als CPython. Dazu kommen etliche Performance-Verbesserungen für viele Bibliotheken aus den Bereichen Mathematik und Wissenschaft.
Für die Nutzung von ActivePython ist Geldeinsatz notwendig. Drei Versionen stehen zur Auswahl: eine kostenlose "Community Edition" (kein Support), eine "Business Edition" und eine "Enterprise Edition". Enterprise-Nutzer können sich von unten nach oben durch die Pyramide arbeiten, um zu sehen, ob ActivePython zu ihrem Projekt passt.
Geeignet für: Enterprise-Nutzer, die ohne großen Aufwand auf viele Bibliotheken von Drittanbietern zugreifen wollen. Und bereit sind für Support zu bezahlen.
PyPy: Das größte Alleinstellungsmerkmal der Python-Distribution PyPy ist Geschwindigkeit. Mit Hilfe eines JIT (Just in time)-Compilers beschleunigt sie Python-Applikationen. Und zwar teilweise dramatisch. Allerdings manifestiert sich diese Performance-Verbesserung in erster Linie in Applikationen, die über einen langen Zeitraum laufen.
Geeignet für: Entwickler von langfristigen Services, für die die Dynamik von Python von Nutzen ist.
Anaconda: In der Praxis kommt Python vor allem in der Mathematik und Statistik zum Einsatz. Etwa wenn es um Datenanalysen oder Machine Learning geht. Inzwischen gibt es einige Python-Distributionen, die speziell für diese Anwendungsszenarien ausgelegt sind. Anaconda von Continuum Analytics gehört zu den bekanntesten und meist genutzten. Wie im Fall von ActivePython gehören auch hier zahlreiche Python-Bibliotheken zum Paket - unter anderem kommen Intel-optimierte Versionen von Mathematik-Bibliotheken zum Einsatz. Anaconda verfügt auch über einen eigenen Installer, um die Bibliotheken von Drittanbietern zu managen. So fällt es auch leichter, die Packages auf dem neuesten Stand zu halten.
Geeignet für: Jeden, der Python zur Datenanalyse oder für maschinelles Lernen nutzt. Anaconda ist zwar nicht ausschließlich für diese Use Cases gemacht, aber stark auf diese zugeschnitten. Die Python-Distribution Enthought ist eine Alternative zu Anaconda.
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.