Python: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K →‎Python-Version abfragen: jetzt ist besser …
Zeile 26: Zeile 26:


Dies Prüft auf Python 3.3.0 (oder neuer). Hier kann auch etwas allgemeiner <code>(3,0)</code> angegeben werden, um generell Python 3 zu erfordern. Mittels des Vergleichsoperators (hier <code>>=</code>) kann zudem bestimmt werden, welche Bedingung erfüllt sein muss. Wenn exakt eine Version genutzt werden soll, kann als Operand <code>(3,3,0,'final',0)</code> verwendet werden. Dies ist allerdings nicht empfehlenswert, im Regelfall reicht <code>>= (3,0)</code> aus.
Dies Prüft auf Python 3.3.0 (oder neuer). Hier kann auch etwas allgemeiner <code>(3,0)</code> angegeben werden, um generell Python 3 zu erfordern. Mittels des Vergleichsoperators (hier <code>>=</code>) kann zudem bestimmt werden, welche Bedingung erfüllt sein muss. Wenn exakt eine Version genutzt werden soll, kann als Operand <code>(3,3,0,'final',0)</code> verwendet werden. Dies ist allerdings nicht empfehlenswert, im Regelfall reicht <code>>= (3,0)</code> aus.
Anstelle des <code>print()</code> könnte man hier nun weitergehen, und die genaue Version abfragen, und je nach Version entweder eine <code>Exception</code> generieren, oder Parameter verändern, so dass das Programm Dinge anders ausführt. Es empfiehlt sich, dies möglichst früh im Programmablauf einzubauen.


== Weitere Implementierungen ==
== Weitere Implementierungen ==

Version vom 10. Dezember 2012, 18:02 Uhr

Python ist eine multiparadigmatische, interpretierte, höhere Programmiersprache, die neben der einfachen Erlernbarkeit einen großen Schwerpunkt in der guten Lesbarkeit der Programme setzt.

Installation

Python ist in zwei Paketen in den Repositorys verfügbar. Es gibt zum Einen python, die aktuelle Version. Zum Anderen gibt es mit python2 die Version 2.x, die nach wie vor noch benutzt wird. Es wird empfohlen, nur python zu installieren, wenn keines der installierten Programme die Version 2.x benötigt.

pacman -S python   # Aktuelle Version
pacman -S python2  # 2.x bei Bedarf

Nach der Installation ist die interaktive Shell über python zu starten, und der Interpreter befindet sich in /usr/bin/python. Zum Aufruf der 2.x-Version wird jeweils eine 2 nachgestellt.

Besonderheiten

Aufgrund der Tatsache, dass Python 3 teilweise nicht mehr zu älteren Versionen von Python kompatibel ist, kann es notwendig sein, beide Versionen parallel zu betreiben. Dies ist problemlos möglich, da python2 unter diesem Namen eine eigenständige Installation ist, und python (3.x) nicht beeinflusst.

Wenn man eigene Programme entwickelt, sollte man nach Möglichkeit Python 3.x verwenden, und nur, wenn man spezielle Funktionen oder Module von Python 2.x nutzen muss, auf Python 2.x zurückfallen.

Der Umstand, dass unter Arch Python 3.x als /usr/bin/python, und nicht als /usr/bin/python3 vorhanden ist, kann dafür sorgen, dass Arch-fremde Scripte, oder Programme nicht funktionieren. In einem solchen Fall müssen sie explizit mit der richtigen Python-Version aufgerufen werden (python script.py oder python2 script.py), oder das Shebang in der Datei angepasst werden (#!/usr/bin/python wird zu #!/usr/bin/python2, oder #!/usr/bin/python3 wird zu #!/usr/bin/python).

Python-Version abfragen

Ein einfacher Weg, die aktuelle Python-Version in eigenen Programmen abzufragen und entsprechend zu reagieren ist folgender Code-Schnipsel.

import sys

if not sys.version_info >= (3,3,0):
    print('Bitte mindestens Python 3.3 verwenden!')

Dies Prüft auf Python 3.3.0 (oder neuer). Hier kann auch etwas allgemeiner (3,0) angegeben werden, um generell Python 3 zu erfordern. Mittels des Vergleichsoperators (hier >=) kann zudem bestimmt werden, welche Bedingung erfüllt sein muss. Wenn exakt eine Version genutzt werden soll, kann als Operand (3,3,0,'final',0) verwendet werden. Dies ist allerdings nicht empfehlenswert, im Regelfall reicht >= (3,0) aus.

Anstelle des print() könnte man hier nun weitergehen, und die genaue Version abfragen, und je nach Version entweder eine Exception generieren, oder Parameter verändern, so dass das Programm Dinge anders ausführt. Es empfiehlt sich, dies möglichst früh im Programmablauf einzubauen.

Weitere Implementierungen

Neben der standardmäßig vorhandenen Implementierung CPython gibt es noch einige weitere Implementierungen.

  • PyPy: Ein in Python geschriebener Python-Interpreter – community/pypy
  • Parrot: Virtuelle Maschine für Programmiersprachen – community/parrot
  • Jython: In Java für die JVM geschriebene Implementation – community/jython
  • IronPython: Implementation für die .NET-Entwicklungsumgebung – aur/ironpython-git
  • Stackless: Experimentelle Implementation, die nicht den Prozessor-Stack nutzt – aur/stackless-python

Des Weiteren ist es auch möglich, Python als Interpreter für Webseiten zu verwenden. Der Artikel lighttpd wartet hierzu mit einem entsprechenden Einrichtungsbeispiel auf.

Weblinks