Ausführen von Python-Code

Betrachten wir folgende Python-Code-Zeile:

print "Python lernen!"

Man erkennt unschwer die Variante zum sonst nahezu obligatorischen Hallo-Welt bzw. Hello-World-Skript. Diese Anweisung gibt also "Python lernen" aus, wie man erkennt, wenn man die Zeile in der Shell des Python-Interpreter eintippt:

>>> print "Python lernen!"
Python lernen!

Die meisten Skripte werden jedoch nicht interaktiv eingetippt und ausgeführt sondern, wie auch in anderen Programmiersprachen üblich in einer Datei gespeichert. Obiges Skript könnte man beispielsweise unter dem Namen python_lernen.py speichern. Um ein Python Programm zu erstellen, benötigt man keine IDE ("Integrated Development Environment"), wie zum Beispiel IDLE. Im Prinzip kann man jeden Editor (vi, emacs und andere) verwenden, der in der Lage ist unformatierte Textdateien abzuspeichern.

Das Suffix .py ist für ein einzelnes Skript in Python nicht unbedingt nötig. Zur Kennzeichnung von Modulen ist es jedoch zwingend nötig, wie man im Kapitel "Module und Pakete" nachlesen kann.

Python-Skript starten

Nun stellt sich die Frage, wie man ein Python-Skript starten kann. Die einfachste Möglichkeit bietet die Shell oder, wenn man eine IDE verwendet, durch Anklicken von entsprechenden Icons oder Menupunkte. In einer Bash-Shell unter Ubuntu startet man dieses Python-Skript wie folgt: Starten des Python-Skriptes in der Bash mit
Ebenso kann man dieses Beispiel-Skript auch in einer DOS-Shell unter Windows starten. Sowohl unter Windows als auch unter Linux muss dabei Python im Pfad stehen, also unter Linux in PATH.

Python Interna

Nun wollen wir die Frage klären, was innerhalb von Python nach dem Start eines Skriptes geschieht. Ruft man das Skript in der Kommandozeile "python python_lernen.py" direkt auf, dann wird das Skript in Bytecode übersetzt und ausgeführt. Diesen Byte-Code bekommt die Anwenderin oder der Anwender nicht zu Gesicht.

Das ändert sich, wenn man in einem anderen Python-Skript oder auch in der Python-Shell dieses Skript mittels dem Kommando "import", also "import python_lernen" importiert. Dann wird zusätzlich im gleichen Verzeichnis, in dem sich die Datei python_lernen.py befindet, eine Datei gleichen Namens aber mit der Endung .pyc angelegt, in der sich der Byte-Code befindet.

Übersetzung des Python-Skripts in Byte-Code
monty@python $ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import python_lernen
Python lernen!
>>> 
monty@python $ ls python_lernen*
python_lernen.py   python_lernen.pyc
monty@python $ 

Bei einem späteren import in einem anderen Programmlauf, wird dann direkt die Datei mit dem Byte-Code geladen. Importiert man die gleiche Datei mehrmals im gleichen Skript wird sie nur beim ersten Mal geladen.

Bei dem Byte-Code handelt es sich um einen Maschinenunabhängigen Code, der mittels einer virtuellen Maschine ausgeführt (PVM, Python Virtual Machine) wird.

Compiler

Ein Compiler (auch Übersetzer genannt) ist ein Computerprogramm, das ein in einer Quellsprache, wie beispielsweise C oder C++, geschriebenes Programm - Quelle oder Quellprogramm genannt - in ein semantisch äquivalentes Programm einer Zielsprache (Zielprogramm) übersetzt. Üblicherweise handelt es sich dabei um die Übersetzung eines von einem Programmierer in einer Programmiersprache geschriebenen Quelltextes in Assemblersprache, Bytecode oder Maschinensprache. Das Übersetzen eines Quellprogramms in ein Zielprogramm durch einen Compiler wird auch als Kompilierung bezeichnet.

Interpreter

Ein Interpreter ist ein Programm, das einen Quellcode im Gegensatz zu Assemblern oder Compilern nicht direkt in ausführbaren Code, also eine ausführbare Datei, wandelt, sondern den Quellcode einliest, analysiert und ausführt. Die Analyse des Quellcodes erfolgt zur Laufzeit des Programms.

Hilfe

Zu jedem Kommando und jeder Funktion kann man in Python-Interpreter auch inertaktiv Hilfe anfordern.

help("execfile")