Rückblick: 6 Python-IDEs gehen auf die Matte

Von allen Metriken, mit denen Sie die Popularität und den Erfolg einer Sprache messen können, ist ein todsicherer Faktor die Anzahl der dafür verfügbaren Entwicklungsumgebungen. Der Anstieg der Popularität von Python in den letzten Jahren hat eine starke Welle der IDE-Unterstützung mit sich gebracht, die sich sowohl an den allgemeinen Programmierer als auch an diejenigen richtet, die Python für Aufgaben wie wissenschaftliche Arbeit und analytische Programmierung verwenden.

Diese sechs IDEs mit Python-Unterstützung decken die Bandbreite der Anwendungsfälle ab. Einige sind mehrsprachige IDEs, die Python-Unterstützung durch ein Add-On oder ein Umpacken eines anderen Produkts mit Python-spezifischen Erweiterungen bieten. Jedes kommt einer etwas anderen Zielgruppe von Python-Entwicklern zugute, obwohl viele danach streben, als universelle Lösung nützlich zu sein.

Eine gute Anzahl der heutigen IDEs sind Frameworks, die mit Plugins für bestimmte Sprachen und Aufgaben ausgestattet sind, und keine Apps, die von innen nach außen geschrieben wurden, um die Entwicklung in einer bestimmten Sprache zu fördern. Zu diesem Zweck kann Ihre Wahl der IDE davon abhängen, ob Sie Erfahrung mit einer anderen IDE aus derselben Familie haben oder nicht.

Zugehöriges Video: Warum Python das Programmieren vereinfacht

Für diejenigen, die keine solche Erfahrung haben, ist PyCharm einer der besten Startpunkte. Es ist freundlich zu Neulingen, aber nicht in seinen Funktionen eingeschränkt. Tatsächlich bietet es einige der nützlichsten Funktionen unter allen hier profilierten IDEs. Viele dieser Funktionen sind nur in der kostenpflichtigen Version des Produkts verfügbar, aber in der kostenlosen Version gibt es viele, die einem jungen Entwickler den Einstieg erleichtern.

LiClipse und die Python-Tools für Visual Studio (PTVS) sind eine gute Wahl für Entwickler, die bereits mit Eclipse bzw. Microsoft Visual Studio vertraut sind. Bei beiden handelt es sich um vollständige Entwicklungsumgebungen - so umfassend wie Sie sie finden werden -, die Python recht gut integrieren. Es handelt sich jedoch auch um weitläufige, komplexe Anwendungen, die mit viel kognitivem Aufwand verbunden sind. Wenn Sie beide bereits beherrschen, ist dies eine gute Wahl für die Python-Arbeit.

Die Python-Inkarnation der Komodo-IDE von ActiveState ist eine Selbstverständlichkeit für diejenigen, die die Komodo-IDE bereits für eine andere Sprache verwendet haben, und verfügt über einzigartige Funktionen (wie den Evaluator für reguläre Ausdrücke), die ihre Attraktivität erweitern sollten. Komodo verdient einen genauen Blick von Anfängern und Experten gleichermaßen.

Spyder eignet sich am besten für die Arbeit mit IPython oder anderen Tools für wissenschaftliches Rechnen in Distributionen wie Anaconda und nicht allgemein als Entwicklungsplattform für Python. Schließlich ist IDLE am besten für schnelles und schmutziges Scripting reserviert, und selbst in dieser Hinsicht kann es zu einem eigenständigen Code-Editor mit einem Python-Syntax-Plugin kommen. Das heißt, IDLE ist immer da, wenn Sie es brauchen.

LEERLAUF

IDLE, die Entwicklungsumgebung, die in fast jeder Installation von Python enthalten ist, kann als Standard-Python-IDE betrachtet werden. IDLE ist jedoch keineswegs ein Ersatz für eine vollständige IDE. Es ist eher wie ein ausgefallener Datei-Editor. Trotzdem bleibt IDLE eine der Standardoptionen für Python-Entwickler, um sich mit der Sprache vertraut zu machen, und es wurde mit jeder Version von Python, insbesondere mit Python 3.5, schrittweise verbessert. (Auf dieser Seite finden Sie interessante Informationen zu den jüngsten Bemühungen zur Verbesserung von IDLE.)

IDLE besteht vollständig aus Komponenten, die mit einer Standardinstallation von Python geliefert werden. Neben dem CPython-Interpreter selbst umfasst dies das Tkinter-Interface-Toolkit. Ein Segen beim Erstellen von IDLE auf diese Weise: Es läuft plattformübergreifend mit einer konsistenten Reihe von Verhaltensweisen. Als Nachteil kann die Schnittstelle sehr langsam sein. Das Drucken großer Textmengen aus einem Skript in die Konsole ist beispielsweise um viele Größenordnungen langsamer als wenn das Skript direkt über die Befehlszeile ausgeführt wird.

IDLE hat einige unmittelbare Annehmlichkeiten. Es verfügt über eine integrierte Read-Eval-Print-Schleife (REPL) oder eine interaktive Konsole für Python. Tatsächlich ist diese interaktive Shell das erste Element, das dem Benutzer beim Starten von IDLE angezeigt wird, und kein leerer Editor. IDLE enthält auch einige Tools, die in anderen IDEs enthalten sind, z. B. Vorschläge für Schlüsselwörter oder Variablen, wenn Sie Strg-Leertaste drücken, und einen integrierten Debugger. Die Implementierungen für die meisten dieser Funktionen sind jedoch im Vergleich zu anderen IDEs primitiv und durch die begrenzte Auswahl an UI-Komponenten von Tkinter verborgen. Und die Sammlung von Add-Ons von Drittanbietern, die für IDLE verfügbar sind (ein solches Projekt ist IdleX), ist bei weitem nicht so umfangreich wie bei anderen IDEs.

Insgesamt eignet sich IDLE am besten für zwei Szenarien. Das erste ist, wenn Sie ein schnelles Python-Skript zusammen hacken möchten und dazu eine vorkonfigurierte Umgebung benötigen. Die zweite ist für Anfänger, die gerade ihre Beine bekommen. Selbst Anfänger müssen schnell zu einer robusteren Option wechseln.

Spyder

Spyder ist die Abkürzung für "Scientific PYthon Development EnviRonment". Es ist als Workbench für das wissenschaftliche Rechnen mit Python vorgesehen und spiegelt sich im Funktionsumfang, in der Verpackung und im Gesamtverhalten der IDE wider. Spyder bietet nützliche Funktionen für die allgemeine Python-Entwicklung. Wenn Sie jedoch nicht hauptsächlich mit IPython- und Scientific Computing-Paketen arbeiten, sind Sie wahrscheinlich mit einer anderen IDE besser dran.

Der Hauptgrund, Spyder nicht als universelle Python-Entwicklungsumgebung zu verwenden, ist nicht der Funktionsumfang, sondern der Einrichtungsprozess. Spyder wird nicht als eigenständige ausführbare Datei in der Art eines Produkts wie Visual Studio oder PyCharm geliefert. Stattdessen wird es als Python-Paket installiert. Der einfachste Weg zu Spyder besteht darin, eine mitgelieferte Python-Distribution zu installieren, z. B. Anaconda von Continuum Analytics.

1. Verfügbar als Erweiterung, unterstützt jedoch nur die Syntaxprüfung. 2. Verfügbar als Eclipse-Add-On. 3. In kommerzieller Version erhältlich. 4. Siehe Integrationsanweisungen. 5. Verwendet auf dem Host installierte Versionskontrollsysteme.
  LEERLAUF Komodo LiClipse PyCharm PTVS Spyder
Cython-Unterstützung Nein Ja (1) Nein Ja: 3) Nein Nein
Versionskontrolle Nein Ja Ja Ja Ja Ja (5)
Grafischer Debugger Nein Ja Ja Ja Ja Nein
IPython-Unterstützung Nein Nein Nein Ja Ja (4) Ja
Makros Nein Ja Ja (2) Ja (2) Ja Nein
Mehrere Dolmetscher Nein Ja Ja Ja Ja Ja
Refactoring Nein Ja Ja Ja Ja Nein
Datenbankintegration Nein Ja Ja (2) Ja: 3) Ja Nein
HTML / CSS / JavaScript Nein Ja Ja Ja Ja: 3) Nein

Spyder enthält IPython, das die herkömmliche Python-Konsole ersetzt. Wenn Sie Befehle in IPython eingeben, können die Ergebnisse interaktiv untersucht werden. Jeder Befehl kann als "Zelle" oder als Codesegment behandelt werden, dessen Ausgabe gespeichert und sortiert werden kann.

Spyder ergänzt dies durch die Integration des Zellverhaltens in seinen Code-Editor. Wenn Sie speziell formatierte Kommentare in ein Python-Skript einfügen, können Sie es in Zellen unterteilen und diese Zellen in der IPython-Oberfläche in beliebiger Reihenfolge ausführen. Auf diese Weise ist es einfach, Spyder zu verwenden, um Zellen für die spätere Platzierung in einem IPython-Notizbuch zu prototypisieren.

Zum Debuggen verwendet Spyder den in Python integrierten Pdb-Debugger. Die Befehlszeilenschnittstelle für Pdb ist weit entfernt von den komplexeren grafischen Debuggern in PyCharm oder LiClipse, obwohl Sie den grafischen Winpdb-Debugger als optionales Add-On installieren können. Leider können Sie Winpdb nicht mit Python 3 verwenden, da es Abhängigkeiten von Paketen gibt, die nur noch in Python 2 verfügbar sind (insbesondere wxPython). Zu diesem Zweck werden die meisten Menschen mit Pdb stecken bleiben.

Spyder ist im Vergleich zu anderen IDEs auch in seiner Integration mit Versionskontrollsystemen wie Git und Mercurial eingeschränkt. Wenn Sie in einem initialisierten Projekt-Repository arbeiten, werden in den Dateien in diesem Projekt Kontextmenüelemente mit der rechten Maustaste für das Repository angezeigt. Es gibt jedoch keine Versionskontrollmechanismen, die direkt in Spyder integriert sind. Auf Systemebene muss die entsprechende Versionskontrollanwendung bereits installiert sein, deren ausführbare Dateien über den Systempfad verfügbar sind. Spyder enthält auch keine Tools zum Verwalten von Repositorys in seiner Benutzeroberfläche. Diese Mängel sind nicht so schlimm, wenn Sie bereits die Gewohnheit haben, Repositorys selbst zu verwalten, aber sie stellen zusätzliche Hürden dar, wenn Sie dies nicht tun.

Spyder verfügt über nützliche Funktionen für die allgemeine Python-Entwicklung. Eines, das mir sofort aufgefallen ist, ist das variable Explorer-Fenster in Spyders Benutzeroberfläche. Während Sie Befehle in IPython eingeben, werden alle erstellten Variablen dort protokolliert und können interaktiv untersucht werden. Ein weiteres nützliches Tool ist das User Module Deleter. Wenn Sie es aktivieren, lädt der Python-Interpreter alle Module von Grund auf neu, wenn er ein Python-Skript ausführt. Auf diese Weise können alle am Code eines Moduls vorgenommenen Änderungen auf ein laufendes Programm angewendet werden, ohne dass die gesamte Anwendung neu gestartet werden muss.

ActiveState Komodo IDE

Die IDE-Produktlinie von ActiveState umfasst Versionen für nahezu alle wichtigen Sprachen. Der Ansatz des Unternehmens ähnelt in etwa der Funktionsweise von LiClipse: Nehmen Sie das Basisprodukt (in diesem Fall die Komodo-IDE) und statten Sie es mit Add-Ons für die Python-Entwicklung aus.

Komodo ist am besten für diejenigen geeignet, die bereits mit Inkarnationen von Komodo für andere Sprachen vertraut sind. Menschen mit solchen Erfahrungen werden keine Probleme haben, in das Python-Produkt einzutauchen. Wenn Ihnen kalt wird, gibt es einige bemerkenswerte Macken in der Benutzeroberfläche. Beispielsweise wird die App-Menüleiste nicht standardmäßig angezeigt. Sie müssen auf das Hamburger-Menü oben rechts klicken oder auf die Alt-Taste tippen, um es anzuzeigen. Es soll die Dinge sauber und einfach halten, kann aber für manche Geschmäcker zu minimalistisch sein.

Auf der anderen Seite sind einige der Schnittstellenoptionen sofort ansprechend. Besonders gut hat mir die „Minikarte“ gefallen, eine verkleinerte Vorschau des Codes im Editor, mit der Sie auf einen Blick zu einem beliebigen Teil der Datei springen können, die Sie bearbeiten. LiClipse hat eine ähnliche Funktion, aber die Implementierung von Komodo ist einfacher zu handhaben.

Die meisten Python-IDEs sind mit Python-spezifischen Syntaxprüfungen oder Code-Flusen ausgestattet. Komodo IDE bietet all das, wurde jedoch auch so konzipiert, dass es gleichzeitig die Versionen 2 und 3 der Sprache unterstützt. Wenn Sie beispielsweise eine Python-Shell starten möchten und Interpreter für beide Python-Versionen in Ihrem Systempfad verfügbar sind, können Sie explizit eine der beiden Versionen auswählen. Ich musste oft schnelle Tests des Verhaltens einer bestimmten Anweisung in Python 2 und Python 3 nebeneinander durchführen, und dies ist eine praktische Möglichkeit, dies zu tun.

Komodo bietet Ihnen die Möglichkeit, mehrere Ausführungs- oder Debug-Konfigurationen für eine Anwendung anzuwenden, ist jedoch etwas weniger flexibel als eine ähnliche Funktion in LiClipse. Wenn Sie eine App starten, haben Sie die Wahl zwischen verschiedenen Profilen, die auf das Programm angewendet werden sollen. Sie können die Profilauswahl deaktivieren und direkt mit der Ausführung eines Profils beginnen. Die Deaktivierung kann jedoch nur auf anwendungsweiter Basis erfolgen, nicht für ein bestimmtes Projekt. Ich bevorzuge das Dropdown-Menü der Symbolleiste von LiClipse, aus dem Sie ein bestimmtes Profil auswählen oder das zuletzt verwendete Profil mit einem Klick starten können.

Eine wirklich wunderbare Aufnahme ist ein Toolkit für reguläre Ausdrücke. Geben Sie einen regulären Ausdruck in einen Bereich dieses Tools ein, geben Sie einige Beispieldaten an, auf die Sie ihn in einem zweiten Bereich anwenden können, und die Ergebnisse werden in einem dritten Bereich angezeigt. Das Tool unterstützt auch mehrere Varianten von Regex, einschließlich Python, und zeigt Ihnen sogar die Ergebnisse von Übereinstimmungs-, Teilungs- und Ersetzungsvorgängen an. Ich habe die ganze Zeit Probleme damit, funktionierende Regexes herzustellen, daher ist dieses Werkzeug ein Glücksfall.

Eine weitere nützliche sofort einsatzbereite Funktion ist ein Katalog allgemeiner Codefragmente für Python. Klicken Sie zum Beispiel auf "walk", und der Editor fügt den Boilerplate-Code ein, um mit der Python- os.walkFunktion Verzeichnisse zu durchlaufen, eine der Funktionen, an deren Syntax und Verwendung ich mich nie ohne weiteres erinnern kann. Andere Sprachen sind ebenfalls enthalten. Wenn Sie beispielsweise Standard-HTML in eine Django-Vorlage einfügen müssen, die Sie gerade erstellen, ist Komodo genau das Richtige für Sie.

Die Standard-Python-Distribution unterstützt standardmäßig SQLite. Komodo IDE ergänzt dies durch die Bereitstellung eines integrierten Explorers für SQLite-Datenbanken. Es ist wie eine abgespeckte Version der für MySQL oder Microsoft SQL Server bereitgestellten Desktop-Apps „Workbench“. Die Benutzeroberfläche ist klobig und unattraktiv, eignet sich jedoch perfekt für die schnelle und schmutzige Überprüfung oder Bearbeitung einer Datenbank vor Ort. Es ist nicht als vollständige Datenbank-IDE gedacht.

In Komodo finden Sie viele weitere nützliche Funktionen, auch wenn diese nicht speziell auf Python abzielen. Mit dem Makrorecorder können Sie allgemeine Aktionen aufzeichnen und wiedergeben, obwohl einige Arten von Aktionen nicht aufgezeichnet werden, z. B. die Auswahl des App-Profils, das beim Starten einer App verwendet werden soll. Eine weitere Funktion ermöglicht die Zusammenarbeit zwischen Komodo-Benutzern in Echtzeit. Sie müssen sich jedoch für Konten bei ActiveState anmelden, um auf den Dienst zugreifen zu können.

LiClipse 

Die Eclipse-IDE wird oft als langsam und überlastet kritisiert, aber ihre breite Sprachunterstützung und die Galerie von Entwicklungs-Add-Ons machen sie zu einem leistungsstarken und wertvollen Werkzeug. Python wird in Eclipse über das PyDev-Add-On unterstützt. Wenn Sie Eclipse nur für die Python-Entwicklung verwenden, ist es am besten, sich LiClipse zu schnappen. (In diesem Test werde ich LiClipse als Abkürzung für das Funktionspaket verwenden, das LiClipse und PyDev zusammen bereitstellen.)

LiClipse ist ein Umpacken von Eclipse mit PyDev zusammen mit einer Reihe anderer Eclipse-Komponenten, die die Benutzererfahrung verbessern sollen. Beim Start sieht LiClipse ähnlich aus und verhält sich ähnlich wie die reguläre Ausgabe von Eclipse, mit Ausnahme des LiClipse-Brandings und der Symbole. Daher sollten erfahrene Eclipse-Benutzer keine großen Probleme haben, den Arbeitsbereich nach ihren Wünschen zu konfigurieren. Wenn Sie noch keine Erfahrung mit Eclipse haben, benötigen Sie einige Zeit, um zu lernen, wie der Arbeitsbereich von Eclipse funktioniert (dieser Aspekt von Eclipse wird routinemäßig kritisiert). In diesem Sinne ist LiClipse am besten für Leute geeignet, die bereits mit Eclipse vertraut sind, vielleicht weil sie in einer anderen Sprache daran arbeiten.

Scorecard Fähigkeit (30%) Leistung (10%) Benutzerfreundlichkeit (20%) Dokumentation (20%) Add-Ons (20%) Gesamtpunktzahl (100%)
LEERLAUF 3.5.1 6 7 8 7 5 6.5
Komodo IDE 10.1.1 8 8 7 8 8 7.8
LiClipse 3.1 9 7 7 8 9 8.2
PyCharm 2016.2.3 9 8 9 8 8 8.5
Spyder 3.0.0 7 7 7 7 6 6.8
Python Tools 2.2 für Visual Studio 2015 9 8 7 9 9 8.5