Sind Sie nach den den ersten vier Teilen des Python-Kurses auf den Geschmack gekommen und planen nun größere Projekte mit Python, dann bieten sich einige Helfer an: Dieser Artikel liefert Tipps zu hilfreicher Software für die Entwicklung.
Entwicklungsumgebungen
Bei maschinennahen Sprachen oder solchen mit einer komplexeren Struktur sind sie gang und gäbe, Python-Programmierer setzen sie dagegen seltener ein: die sogenannte IDE. Python-Code brauchen Sie nicht zu übersetzen. Ein Debugger kommt nur sehr selten zum Einsatz; oft reicht ein Traceback, um einen Fehler zu finden. Manchmal helfen ein paar print-Anweisungen.
Meist reicht daher der Lieblingseditor (beispielsweise Vim oder Emacs), zusammen mit einer Shell (Xterm, Konsole, Gnome Terminal), in der Sie einen interaktiven Interpreter oder das zu entwickelnde Programm aufrufen. Abbildung 1 zeigt als Beispiel links eine Shell mit einem Interpreter, rechts den Vim-Editor [1]. Selbst bei diesem minimalistischen Arbeitsstil hilft eine IDE gelegentlich, beispielsweise um Vererbungshierarchien im Code grafisch darzustellen.
Ungeachtet dessen, dass eine IDE nicht unbedingt nötig ist, gibt es auch für Python etliche [2]. Ein guter Start, vor allem für Gelegenheitsprogrammierer, ist das Programm Idle (Abbildung 2), das bei den meisten Linux-Distributionen zusammen mit der Python-Standarddistribution installierbar ist, und das Sie durch Eingabe von idle & auf der Kommandozeile starten.
Eine Auswahl weiterer IDEs aus dem Open-Source- und dem kommerziellen Umfeld listet die Tabelle "Python-IDEs" auf. Es empfiehlt sich, eine IDE zu verwenden, deren Feature-Liste die Unterstützung für die Skriptsprache nicht nur nebenbei listet. Solche IDEs konzentrieren sich häufig auf C und C++ und bieten beispielweise keine Debugger-Integration für Python. Mitunter erschöpft sich der Support dann darin, dass der integrierte Editor den Quellcode richtig einfärbt. Mit den Programmen in der Tabelle liegen Sie dagegen genau richtig.
Python-IDEs
| Open Source | ||
|---|---|---|
| Name | URL | Bemerkungen |
| Boa Constructor | http://boa-constructor.sourceforge.net | GUI-Designer für wxPython; erzeugt UML-Klassendiagramme |
| DrPython | http://drpython.sourceforge.net | mit eigenen Python-Plugins erweiterbar |
| PyDev | http://pydev.sourceforge.net | Python-Erweiterung für Eclipse [3] |
| Eric | http://www.die-offenbachs.de/detlev/eric.html | für Python und Ruby; viele Features |
| Stani's Python Editor (SPE) | http://www.stani.be/python/spe | viele Features; erzeugt UML-Klassendiagramme; GUI-Designer für wxPython |
| UliPad | http://wiki.woodpecker.org.cn/moin/UliPad | durch Plugins erweiterbar |
| Kommerziell | ||
| Name | URL | Bemerkungen |
| BlackAdder | http://www.thekompany.com/products/blackadder | für Python und Ruby; kostenlose Personal-Edition |
| Komodo | http://www.activestate.com/Products/Komodo | spezialisiert auf dynamische Sprachen |
| WingIDE | http://www.wingware.com/products | 10 Tage kostenloser Probebetrieb bei vollem Funktionsumfang |
Helferlein
Entwickler schätzen den interaktiven Modus des Python-Interpreters. Noch komfortabler geht es mit IPython [4]. Der Screenshot in Abbildung 3 zeigt eine Beispielsitzung. Zu den Vorzügen gehören unter anderem der Zugriff auf viele frühere Ein- und Ausgaben, nicht nur die letzte Ausgabe, wie im gewöhnlichen Python-Interpreter, das Anzeigen oder Vervollständigen von Attributen mit der Tabulator-Taste (Tab Completion) sowie das Anzeigen der Dokumentation oder des Quellcodes eines Objekts durch angehängte Fragezeichen. Außerdem liefert IPython farbige Tracebacks mit mehr Kontext-Zeilen.
In Python-Programme schleichen sich, verglichen zum Beispiel mit der maschinennahen Sprache C, sehr selten komplexere Fehler ein. Die meisten Fehler finden Sie durch Tracebacks oder print-Anweisungen relativ schnell. Um aber von vornherein möglichst wenige Programm- und Stilfehler einzubauen, bieten sich die Fehlersuchprogramme PyChecker [5] oder PyLint [6] an, die analog zu Lint für C-Code funktionieren.
Diese finden bereits einige Macken im Code, wie zum Beispiel fehlende Modul-Importe, das Verwenden nicht-existierender Klassenmethoden oder -attribute, den Einsatz einer Variablen vor dem deklarieren sowie unbenutzte Funktions- oder Methoden-Argumente.
Da Python sehr dynamisch ist, müssen einige der obigen Bedingungen nicht zwangsläufig Fehler sein (zum Beispiel dürfen Sie Klassen zur Laufzeit neue Methoden hinzufügen). Das Programm erlaubt es daher, Tests selektiv abzuschalten, um keine unnötigen Warnungen zu bekommen.
Das Entwickeln regulärer Ausdrücke, wie dem Folgenden, ist mitunter langwierig und fehleranfällig:
<C>\bLinux(?:[ -]|)(?P<zeitschrift>User|Magazin)\b<C>
Um es sich einfacher zu machen, benutzen Sie das Paket retest[7], das die Syntax regulärer Ausdrücke von Pythons Modul re versteht (Abbildung 4).


