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 08/2016: Multimedia

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

Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...