Aufmacher

Hilfen für das Programmieren mit Python

Entwicklungshelfer

Nachdem in den ersten Teilen der Python-Einführung die Sprache beschrieben wurde, geht es im letzten Teil um nützliche Hilfen rund um Python.

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.

Abbildung 1: Eine Shell und den Lieblingseditor – mehr braucht es nicht zum Entwickeln mit Python.

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.

Abbildung 2: Die Programmierumgebung Idle liefern die meisten Distributionen im Standardumfang mit.

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.

Abbildung 3: Der verbesserte Interpreter IPython erlaubt den Abruf alter Ein- und Ausgaben, das Vervollständingen per Tab sowie Docstring- und Traceback-Anzeige.

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).

Abbildung 4: Das Paket retest hilft, verschiedene Schreibweisen für den Begriff "LinuxUser" zu berücksichtigen (Textfelder von oben nach unten: zu testender regulärer Ausdruck, zu testender Text, Ergebnisse der Operation).

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Hans Dampf in allen Gassen
    Wer sich einige Zeit mit Skripten beschäftigt, stellt schnell fest, dass der Schritt zum Programmieren nicht weit ist. Um diesen Schritt einfach zu gestalten, bietet sich die Sprache Python als Allzweckwerkzeug an.
  • Funktionen, Module und Pakete in Python
    Gliedern Sie Ihre Python-Programme in Funktionen, Module und Pakete. Python bietet Ihnen ebenfalls einige davon.
  • Programmieren lernen in fünf Schritten
    Ob Sie nur ein kleines Administrationsskript entwickeln oder eine umfangreiche Anwendung entwickeln – mit Python geht beides leicht von der Hand.
  • Mit Python programmieren
    Trotz grafischer Oberflächen führt manchmal kein Weg am Einsatz von Skripts vorbei, die regelmäßige Aufgaben individuell lösen. Einsteigern bietet sich dafür die klar strukturierte Sprache Python an.
  • Check inklusive
    Wer mit Python programmiert, bekommt mit dem Doctest-Modul eine einfache Möglichkeit, die Programmfunktionen anschaulich zu dokumentieren und gleichzeitig zu testen.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...