Python

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

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

  2. Installation von Programmen

  3. Einen Editor öffnen

  4. Rechte von Dateien ändern

Inhaltsverzeichnis
  1. Installation
    1. Python 3.x
    2. Python 2.7
    3. manuelle Installation
    4. Dokumentation
  2. Python 2 oder 3?
    1. 2to3
  3. Programme starten
  4. Programme erstellen
  5. Die interaktive Konsole
    1. Start
    2. "Hallo Welt" in Python
    3. Nützliche Befehle
    4. Anpassungen
  6. historisches Python
  7. Weiterführende Literatur
    1. Tutorials
  8. Links
    1. Intern
    2. Extern

Wiki/Icons/python.png Python ist eine interpretierte, objektorientierte höhere Programmiersprache mit dynamischer Typisierung und Bindung. Sie wurde Anfang der 1990er-Jahre von Guido van Rossum entwickelt. Heute ist Python auf vielen Plattformen 🇬🇧 (z.B. Linux, Unix, OS X, Windows) verfügbar und wird unter Ubuntu für viele zentrale Aufgaben benutzt. Python ist, neben C, die offizielle Entwicklersprache von Canonical für Ubuntu.

Genau genommen bezeichnet "Python" nur die Programmiersprache an sich, es gibt verschiedene Implementierungen 🇬🇧. Üblicherweise wird die Referenzimplementierung namens CPython als Python bezeichnet. CPython ist auch die Python-Implementierung, welche Ubuntu (und alle anderen Linux-Distributionen) standardmäßig mit bringt. Eine alternative (und schneller) Implementierung ist z.B. PyPy. Wenn im folgenden von "Python" die Rede ist, dann ist damit aber die CPython-Implementierung gemeint.

Python-Code ist, eine installierte Python-Version vorausgesetzt, direkt ausführbar, d.h. man muss ihn nicht manuell kompilieren. Im Hintergrund wird dabei der Code zuerst in einen plattformunabhängigen Bytecode übersetzt, welcher dann von einem Interpreter ausgeführt wird. Dies geschieht für den Benutzer unsichtbar im Hintergrund.

Seit Beginn seiner Entwicklung folgt Python zwei grundlegenden Prinzipien:

  1. Einfachheit: Die Syntax von Python ist 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ückung.

  2. Freiheit: Objektorientierung wird in Python vollständig unterstützt, es wird aber keine objektorientierte Programmierung erzwungen. Python unterstützt zusätzlich verschiedene Programmierstile, wie imperatives, strukturelles, funktionelles oder aspektorientiertes Programmieren. Zusätzlich verfügt Python neben den eingebauten Funktionen und Typen über eine umfangreiche Standardbibliothek mit Paketen zu den verschiedensten Problemstellungen. Sie reichen von der XML- und HTML-Verarbeitung bis hin zu Funktionen, welche bei der Bearbeitung wissenschaftlicher Probleme helfen. Dies bedeutet bei der Erstellung eines Quellcodes häufig eine erhebliche Zeitersparnis.

Installation

Python ist in einer Ubuntu-Standardinstallation bereits enthalten, da auch Systemkomponenten Python als Voraussetzung benötigen. Welche Version installiert ist, zeigt der folgende Befehl im Terminal [1]:

python3 -V  #für Python 3
python -V   #für Python 2 

Die Desktop-Versionen von Ubuntu und dessen Derivaten enthalten sowohl Python 3 als auch Python 2. Die Server-Version von Ubuntu 16.04 hat nur Python 3 installiert, die Minimalinstallation von Ubuntu enthält in allen noch unterstützten Versionen ebenfalls nur Python 3.

Es gibt sowohl ein Paket für Python 2.7 als auch für Python 3.x. Eine Parallelinstallation von Python 2 und 3 ist problemlos und konfliktfrei möglich.

Python 3.x

Python 3.x (bei Ubuntu 18.04 Version 3.6, bei Ubuntu 16.04 Version 3.5, bei Ubuntu 14.04 Version 3.4) wird mit dem folgenden Paket installiert [2]:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python3 

sudo aptitude install python3 

Python 2.7

Python 2.7 wird über das folgende Paket installiert:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python 

sudo aptitude install python 

manuelle Installation

Wer eine andere Python 3.x Version als die aus den Paketquellen benötigt, kann diese konfliktfrei manuell installieren. Das Vorgehen ist im Artikel Python/manuelle Installation beschrieben.

Dokumentation

Die Dokumentation für Python ist zwar komplett online verfügbar, kann aber auch als Paket zum Offline-Lesen installiert werden:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python3-doc 

sudo aptitude install python3-doc 

und/oder:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python-doc 

sudo aptitude install python-doc 

Die Dokumentation ist anschließend unter /usr/share/doc/python2.7/html/index.html bzw. /usr/share/doc/python3.x/html/index.html zu finden.

Python 2 oder 3?

Python 3, welches seit Anfang 2009 verfügbar ist, ist die Python-Version, welche bevorzugt eingesetzt werden sollte. Python 2.7, der letzte Release des 2er-Zweigs von Python, wurde Mitte 2010 veröffentlicht, ist zwar nach wie vor aktuell und bekommt noch Unterstützung (in Form von Fehlerkorrekturen etc.) bis 2020. Neuerung und Verbesserungen werden aber nicht mehr eingepflegt. Diese fließen ausschließlich in Python 3.x ein.

Die einzigen Gründe, weswegen Python 2.7 noch eingesetzt wird, sind:

Eine ausführliche Erläuterung zum Thema Python 3 vs. Python 2 ist auch im Python-Wiki 🇬🇧 zu finden.

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 ihre Python-3-Tauglichkeit testen bzw. auf Wunsch auch automatisch konvertieren.

Die Benutzung ist dabei recht simpel. Im einfachsten Fall ruft man das Programm 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 das print-Statement aus Python 2 durch die print-Funktion aus Python 3 ersetzen soll. Ruft man 2to3 mit der Option -w auf, so 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 🇬🇧.

Programme starten

Möchte man ein in Python 3 geschriebenes Programm starten, gibt man folgenden Befehl ein:

python3 PROGRAMMNAME.py 

Die installierte Python 3 Version wird automatisch gewählt (also 3.5 für Ubuntu 16.04, 3.4 für Ubuntu 14.04).

Soll das Programm mit Python 2.7 ausgeführt werden, dann lautet der Befehl:

python PROGRAMMNAME.py 

Ist im Python-Programm ein Shebang wie "#!/usr/bin/env python" oder "#!/usr/bin/env python3" vorhanden und das Programm als ausführbar deklariert [4], dann lässt es sich auch direkt ausführen oder per Doppelklick im Dateimanager starten:

PROGRAMMNAME.py 

Programme erstellen

Um Programme mit Python zu erstellen, gibt es prinzipiell drei Wege:

  1. Die interaktive Python-Konsole - der Code wird bei der Eingabe sofort ausgeführt. Dies wird im Folgenden kurz besprochen.

  2. Editoren und Kommandozeile - der Code wird in einem Editor erstellt und über die Kommandozeile ausgeführt

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

Die interaktive Konsole

Die Arbeitsweise der Konsole ist ähnlich der Shell 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 durch den folgenden Befehl gestartet:

python3 

bzw. für Python 2.7 mit:

python 

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

Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

"Hallo Welt" in Python

Der Standardweg, um Python-Programme zu erstellen, erfolgt über einen Editor [3]. Manche Editoren bieten praktische Hilfen wie eine Syntaxhervorhebung oder eine automatische Einrückung. Beispiel: Es wird der Quelltext im bevorzugten Editor erstellt und als ~/hallowelt.py im Homeverzeichnis abgespeichert:

1
2
3
#!/usr/bin/env python3
# Kommentar: Mein Hallo-Welt-Programm fuer Python 3
print('Hallo Welt!')

Für Python 2.7 sieht das Programm nur minimal anders aus:

1
2
3
#!/usr/bin/env python
# Kommentar: Mein Hallo-Welt-Programm fuer Python 2
print 'Hallo Welt!'

Jetzt kann man das Miniprogramm wie weiter oben beschrieben starten.

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.

Anpassungen

Die interaktive Konsole lässt sich anpassen, indem man eine Datei verwendet, die bei jedem interaktiven Start ausgeführt wird (ähnlich zur Datei bashrc der Bash). Dazu muss in der Shell die Umgebungsvariable PYTHONSTARTUP auf den gewünschten Dateinamen gesetzt werden (hier ~/.pythonrc im Homeverzeichnis):

export PYTHONSTARTUP=~/.pythonrc 

Damit man den export-Befehl nicht in jeder neu geöffneten Konsole wieder manuell ausführen muss, trägt man ihn am besten am Ende der bashrc-Datei ein [3]. Nun muss man nur noch die Datei ~/.pythonrc mit einem Editor erstellen und die gewünschten Python-Befehle eintragen. Beispielsweise könnte man oft benötigte Module importieren lassen:

1
2
import os
import sys

Code-Completion

Es ist sehr praktisch, auch in der interaktiven Konsole eine automatische Vervollständigung des Codes zu nutzen. Dazu wird, wie z.B. auch bei der Bash, readline genutzt. Allerdings wird in der interaktiven Python-Konsole Tab ⇆ normalerweise für Einrückungen mit dem Tabulator-Zeichen genutzt. Für die automatische Vervollständigung ist hier das Drücken von Esc gefolgt von Tab ⇆ vorgesehen (genau genommen: Meta-tab).

Man kann allerdings auch eine andere Taste bzw. Tastenkombination für die Code-Completion nutzen. Dazu bearbeitet man die in der Umgebungsvariablen PYTHONSTARTUP angegebene Datei mit einem Editor und fügt folgendes ein [3]:

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

Statt TASTE muss man dabei die gewünschte Taste bzw. Tastenkombination angeben, bspw. C-o bzw. Strg + O für eine normalerweise ungenutzte Tastenkombination. Wenn man tab für Tab ⇆ angibt, bleibt für das echte Tabulatorzeichen trotzdem immer noch Strg + I . Mehr Informationen findet man in der Manpage von readline.

historisches Python

Die älteste verfügbare Python-Version ist 0.9.1, welche auf Mitte 1991 zurück datiert. Wer diese unter Ubuntu ausprobieren möchte, kann sie als snap-Paket installieren:

sudo snap install python0 --classic 

Die interaktive Shell kann über python0 aufrufen.

Weitere Informationen zur Historie von Python ist z.B. im englischsprachigen Wikipedia-Artikel History_of_Python zu finden.

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 im nächsten Abschnitt zu finden. Allgemein empfiehlt es sich für jeden Anfänger, einen Blick in den offiziellen Beginners Guide 🇬🇧 zu werfen.

Tutorials

Python 3

Python 2

Intern

Extern