ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Python

Artikel wird überarbeitet

Dieser Artikel wird momentan überarbeitet.

  • Geplante Fertigstellung: 20.6.2011

  • Derzeitig gültiger Artikel: Python

  • Bearbeiter: noisefloor

Solltest du dir nicht sicher sein, ob an dieser Anleitung noch gearbeitet wird, kontrolliere das Datum der letzten Änderung und entscheide, wie du weiter vorgehst.


Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Python ist eine dynamische, objektoriente Programmiersprache, die Anfang der 1990er-Jahre von Guido van Rossum entwickelt wurde. Heute ist Python auf vielen Plattformen 🇬🇧 (z.B. Linux und den meisten Unix-Varianten, OS X, Windows) verfügbar und wird unter Ubuntu für viele zentrale Programme, wie z.B. das Software-Center, benutzt. Python ist, neben C, die offizielle Entwicklersprache von und für Ubuntu.

Python Programme sind, eine installierte Python-Version vorausgesetzt, direkt ausführbar, d.h. man muss nichts kompilieren oder ähnliches. Im Hintergrund wird dabei zwar das Pythonprogramm zuerst in einen plattformunabhängigen Bytecode übersetzt, welcher dann wiederum ausgeführt wird. Dies geschieht aber, wie gesagt, für den Nutzer unsichtbar im Hintergrund.

Seit Beginn seiner Entwicklung durch folgt Python zwei grundlegenden Prinzipien:

  1. Einfachheit: Die Syntax von Python ist recht einfach und verständlich, so dass sich auch Ein- und Umsteiger schnell zurecht finden. Um die Übersichtlichkeit zu erhöhen, erfolgt die Strukturierung von Anweisungsblöcken nicht mit ; oder Klammern, sondern durch Einrücken.

  2. Freiheit: Python ist zwar durch und durch objektorientiert, erzwingt aber keine objektorientierte Programmierung. Python unterstützt verschiedene Programmierstile, wie objektorientiertes, imperatives, funktionelles oder aspektorientiertes Programmieren. Neben den Standardfunktionen und -objekten, gibt es eine riesige Bibliothek mit Paketen zu verschiedensten Problemstellungen. Sie reichen von der XML-, HTML-Verarbeitung bis hin zu Funktionen, welche bei der Bearbeitung wissenschaftlicher Probleme helfen. Dies bedeutet bei der Erstellung eines Quellcodes eine teilweise erhebliche Zeitersparnis.

Installation

Python ist bei einer Ubuntu-Installation bereits enthalten, da auch Systemkomponenten Python benötigen. Das Paket

  • python

Befehl zum Installieren der Pakete:

sudo apt-get install python 

Oder mit apturl installieren, Link: apt://python

enthält die grundlegenden Pakete der vom System aktuell verwendeten Version.

In Ubuntu 8.04 Hardy Heron liegt Python standardmäßig in der Version 2.5 vor, in 10.04 Lucid Lynx und 10.10 Maverick Meerkat als Version 2.6. In 11.04 Natty Narwhal kommt erstmals Version 2.7 zum Einsatz.

Möchte man Python 3 (siehe folgender Abschnitt) installieren, so muss man das Paket

  • python3

Befehl zum Installieren der Pakete:

sudo apt-get install python3 

Oder mit apturl installieren, Link: apt://python3

installieren. Ein Parallelinstallation zu Python 2 ist unter Ubuntu / Linux ohne Probleme möglich.

Python 2 und 3

Seit Anfang 2009 ist Python 3 verfügbar. In Python 3 hat es keine "grundlegenden" Veränderungen der Sprache gegeben, allerdings wurden viele kleine "Unzulänglichkeiten" und "Ungereimtheiten" von Python 2.x beseitigt. Dies bedingt aber, dass Python 3 Code nicht unter 2.x läuft - und umgekehrt.

Mit dem im Juli 2010 erschienen Python 2.7 ist die letzte Version der 2.x Serie erschienen. Dies soll noch über einen längeren Zeitraum unterstützt werden, Details findet man in den Release Notes 🇬🇧. Außerdem sind weitere Änderung der Version 3 nach 2.7 zurück portiert worden, um einen "sanften" Übergang zu erhalten.

Eine Übersicht über alle Neuerungen in Python 3 findet man hier 🇬🇧.

Das größte "Problem" von Python 3 ist, dass eine Reihe von Modulen und auch "große" Anwendungen noch nicht auf Python 3 portiert worden sind, weshalb Python 2.x noch vielerorts - inklusive Ubuntu - im Einsatz ist. Die Frage, ob man lieber in Python 2 oder 3 programmieren wird auf der Seite Python 2 or 3 🇬🇧 im Python-Wiki ausführlich sowie im folgenden Abschnitt kurz erläutert.

Welche Version nehmen?

Diese Frage ist recht einfach zu beantworten:

Python 3 ist ohne Frage die Zukunft von Python. Sind alle benötigten Zusatzmodule bereits für Python 3 verfügbar, so ist dies die erste Wahl. Fehlen noch notwendige Module, sollte man weiterhin auf Python 2 setzen. Beim Programmieren kann man dann natürlich darauf achten, dass man möglichst wenig Python 2 spezifische Sprachkonstrukte verwendet bzw. diese sich leicht nach Python 3 portieren lassen. Dabei kann auch das Programm 2to3 helfen.

Programme erstellen

Um Programme mit Python zu erstellen, gibt es drei Wege, welche im Folgenden kurz besprochen werden. Dies ist die Arbeit mit

  • der interaktiven Pythonkonsole - der Code wird bei der Eingabe sofort ausgeführt

  • Editoren und Konsole - der Code wird in einem Editor erstellt und über die Konsole ausgeführt

  • Entwicklungsumgebungen - alle Bestandteile, um ein Programm zu erstellen, sind in einer Umgebung zusammengefasst

Die interaktive Konsole

Die Arbeitsweise einer Konsole ist ähnlich der Shell [3] für Linux. Sie ist vor allem zum Testen von kleineren Abschnitten des Quelltextes nützlich, da die eingegebenen Befehle sofort ausgeführt werden.

Für Einsteiger gibt es eine besonders benutzerfreundliche (bzw. einsteigerfreundliche) Variante namens bpython.

Start

Die interaktive Konsole wird gestartet durch [3]

python 

Es erscheint zuerst eine kurze Meldung zur Python Version, dann kommt der Interaktive Prompt >>>, wo man nun Befehle eingeben kann.

1
2
3
4
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

"Hallo Welt" in Python

Der Standardweg, um Python-Programme zu erstellen, geht über einen Editor. Editoren bieten viele Hilfen wie Syntaxhervorhebung, automatische Einrückung und Funktionen zu verkleinern. Daher gibt es auch eine riesige Zahl von Programmen, es kann also jeder einen Editor seiner Wahl finden.

Es wird der Quelltext im bevorzugten Editor [4] erstellt und als *.py abgespeichert.

1
2
3
#!/usr/bin/env python
#mein Hallo-Welt-Programm für Python 2
print 'Hallo Welt!'

Für Python 3 sieht das Programm minimal anders aus:

1
2
3
#!/usr/bin/env python3
#mein Hallo-Welt-Programm für Python 3
print('Hallo Welt!')

Als Beispiel sei der Quellcode unter ~/hallowelt.py abgespeichert.

Nun öffnet man das Terminal [3] und wechselt in das Verzeichnis der Quelldatei. In diesem Ordner kann man sodann durch eine einzige Befehlszeile den Code ausführen

python hallowelt.py 

Nützliche Befehle

Um in der Konsole zu arbeiten, gibt es einige sehr hilfreiche Befehle von Python. Sie werden an einem kurzen Beispiel erklärt

>>> dir() 

Es wird eine Auflistung aller der Konsole bekannten Variablen ausgegeben

>>>import os
>>> help(os) 

Es wird das Modul os importiert. Somit erhält man viele Möglichkeiten, um Informationen über das System zu erhalten. Mit help(os) wird eine kommentierte Übersicht aller im Modul enthaltenen Klassen und Methoden ausgegeben.

weiterführende Literatur

Es gibt eine Vielzahl freier, sehr guter und im Internet verfügbarer Einführungen und Tutorials für Python. Einige davon sind unter Links zu finden.

Code-Completion

Es ist sehr praktisch, auch in der interaktiven Konsole eine automatische Vervollständigung des Codes zu nutzen. Dazu legt man eine Datei ~/.pythonrc mit folgendem Inhalt an:

1
2
3
4
5
6
7
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

Umgebungsvariable PYTHONSTARTUP muss gesetzt werden.

1
export PYTHONSTARTUP=~/.pythonrc

Ab dem nächsten Aufruf von Python auf der Konsole kann man dann die Vervollständigung mit Tab ⇆ nutzen.

2to3

Seit der Python Version 2.5 ist das Kommandozeilenprogramm 2to3 in der Standardinstallation von Python 2 enthalten. Mit dessen Hilfe lassen sich Python 2 Programme sehr einfach auf Python 3 Tauglichkeit testen bzw. auf Wunsch auch automatisch konvertieren.

Die Benutzung ist dabei recht simpel. Im einfachsten Fall ruft man 2to3 nur mit dem Namen eines Pythonskripts als Parameter auf:

2to3 mein_programm.py 

und erhält als Ausgabe Vorschläge, was zu ändern ist, wie z.B.:

RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored test_static.py
--- mein_programm.py (original)
+++ mein_programm.py (refactored)
@@ -3,7 +3,7 @@
 
 from bottle import route, static_file, template, run, debug
 
-print 'Starte Programm...'
+print('Starte Programm...')
 
 @route('/test')
 def test():

In diesem Beispiel wird vorgeschlagen, dass man in der Zeile 3, Position 7, das print Statement aus Python 2 durch die print-Funktion aus Python 3 ersetzen soll. Ruft man 2to3 mit der Option -w auf, sie werden die Änderungen direkt in der Datei durchgeführt, die alte Datei wird mit der Endung .bak als Sicherung angelegt.

Weitere Hinweise zu 2to3 findet man in der Python Dokumentation 🇬🇧.

intern

  • Python Setuptools - Python Pakete aus dem Python Package Index installieren

  • virtualenv - mehrere (virtuelle) Python-Umgebungen parallel installieren

  • Bottle - WSGI-basierte Webanwendungen mit Python erstellen

  • Quickly - GTK-basierte Anwendungen in Python für Ubuntu erstellen und veröffentlichen

  • SQLAlchemy - sehr leistungsfähig Datenbank-Anbindung und Objekt-relationaler Mapper für Python

  • ReportLab - PDF-Dateien aus Python-Skripten heraus erzeugen

Tutorials

extern

Diese Revision wurde am 11. Juni 2011 15:08 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Python