Zum Inhalt springen

Python: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K Python-Version abfragen: jetzt ist besser …
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Python ist eine multiparadigmatische, interpretierte, höhere Programmiersprache, die neben der einfachen Erlernbarkeit einen großen Schwerpunkt in der guten Lesbarkeit der Programme setzt.
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 ==
{{installation|name=Python 3|repo=core|paket=python}}
Python ist in zwei Paketen in den Repositorys verfügbar. Es gibt zum Einen <code>python</code>, die aktuelle Version. Zum Anderen gibt es mit <code>python2</code> die Version 2.x, die nach wie vor noch benutzt wird. Es wird empfohlen, nur <code>python</code> zu installieren, wenn keines der installierten Programme die Version 2.x benötigt.


pacman -S python   # Aktuelle Version
Nach der Installation ist die interaktive Shell über {{ic|python}} zu starten, und der Interpreter befindet sich in {{ic|/usr/bin/python}}.
pacman -S python2  # 2.x bei Bedarf


Nach der Installation ist die interaktive Shell über <code>python</code> zu starten, und der Interpreter befindet sich in <code>/usr/bin/python</code>. Zum Aufruf der 2.x-Version wird jeweils eine <code>2</code> nachgestellt.
Python 2 wurde im September 2022 aus den offiziellen Repositorien entfernt, da es inzwischen nicht mehr supportet wird und auch keinerlei Updates oder Sicherheitspatches erhält. Sofern notwendig, kann man {{AUR|python2}} aber noch aus dem AUR installieren.


== Besonderheiten ==
== Weitere Implementierungen (Auswahl) ==
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 <code>python2</code> unter diesem Namen eine eigenständige Installation ist, und <code>python</code> (3.x) nicht beeinflusst.
Neben der standardmäßig vorhandenen Implementierung ''CPython'' gibt es noch einige weitere Implementierungen.


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.
{| class="wikitable sortable"
! Name !! Sprache !! Paket
|-
| PyPy || Python || {{Paket|pypy}}
|-
| Jython || Java || {{Paket|jython}}
|-
| IronPython || .NET || {{AUR|ironpython-git}}
|}


Der Umstand, dass unter Arch Python 3.x als <code>/usr/bin/python</code>, und nicht als <code>/usr/bin/python3</code> 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 (<code>python script.py</code> oder <code>python2 script.py</code>), oder das Shebang in der Datei angepasst werden (<code>#!/usr/bin/python</code> wird zu <code>#!/usr/bin/python2</code>, oder <code>#!/usr/bin/python3</code> wird zu <code>#!/usr/bin/python</code>).
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.


=== Python-Version abfragen ===
== GUI-Programme erstellen ==
[[Datei:Python_tkinter_example.png|thumb|250px|Ein Tk-Programm, erstellt mittels tkinter zeigt einfaches Fenster an.]]
Python hat Schnittstellen zu diversen GUI-Toolkits, damit ist es relativ einfach, grafische Anwendungen zu erstellen.


Ein einfacher Weg, die aktuelle Python-Version in eigenen Programmen abzufragen und entsprechend zu reagieren ist folgender Code-Schnipsel.
=== Einfache Fenster mittels tkinter ===
Python verfügt mittels ''tkinter'' über eine Schnitstelle zu Tk. Mittels Tk können sehr einfache grafische Programme erstellt werden. Damit tkinter benutzt werden kann, muss {{Paket|Tk}} installiert sein.


import sys
{{hc|1=einfaches_fenster.py|2=
#!/usr/bin/python
if not sys.version_info >= (3,3,0):
import tkinter as tk
    print('Bitte mindestens Python 3.3 verwenden!')
root = tk.Tk()


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.
# Fensterinhalte erstellen
label1 = tk.Label(root, text='Hallo, Wikibenutzer,')
label2 = tk.Label(root, text='dies ist ein Beispiel für ein Tk-Programm.')
label3 = tk.Label(root, text='Es wird Pythons tkinter-Implementation genutzt.')
button = tk.Button(root, text='Fenster schließen', command=root.quit)


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.
# Fensterinhalte im Fenster anordnen (hier per pack() einfach untereinander)
label1.pack()
label2.pack()
label3.pack()
button.pack()


== Weitere Implementierungen ==
# Fenstertitel setzen und Main-Loop starten.
Neben der standardmäßig vorhandenen Implementierung ''CPython'' gibt es noch einige weitere Implementierungen.
root.title('Beispiel für das Wiki')
root.mainloop()
}}


* '''PyPy''': Ein in Python geschriebener Python-Interpreter – <code>community/pypy</code>
Das Script wird dann einfach mittels {{ic|./einfaches_fenster.py}} ausgeführt, und das Fenster durch das erstellte Programm dann angezeigt.
* '''Parrot''': Virtuelle Maschine für Programmiersprachen – <code>community/parrot</code>
* '''Jython''': In Java für die JVM geschriebene Implementation – <code>community/jython</code>
* '''IronPython''': Implementation für die .NET-Entwicklungsumgebung – <code>aur/ironpython-git</code>
* '''Stackless''': Experimentelle Implementation, die nicht den Prozessor-Stack nutzt – <code>aur/stackless-python</code>


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.
=== Andere Toolit-Schnittstellen (Auswahl) ===
{| class="wikitable sortable"
! Name !! Toolkit !! Paket !! Website
|-
| Kivy || OpenGL-Basierend || {{Paket|python-kivy}} || [https://kivy.org] {{sprache|en}}
|-
| PyGObject || GTK || {{Paket|python-gobject}} || [https://pygobject.readthedocs.io] {{sprache|en}}
|-
| PyQt || Qt5/6 || {{Paket|python-pyqt5}}/{{Paket|python-pyqt6}} || [https://riverbankcomputing.com/software/pyqt/intro] {{sprache|en}}
|-
| wxPython || wxWidgets || {{Paket|wxpython}} || [https://www.wxpython.org] {{sprache|en}}
|}


== Weblinks ==
== Weblinks ==

Aktuelle Version vom 4. Februar 2025, 16:57 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 3 ist als python in core verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S python

Nach der Installation ist die interaktive Shell über python zu starten, und der Interpreter befindet sich in /usr/bin/python.

Python 2 wurde im September 2022 aus den offiziellen Repositorien entfernt, da es inzwischen nicht mehr supportet wird und auch keinerlei Updates oder Sicherheitspatches erhält. Sofern notwendig, kann man python2AUR aber noch aus dem AUR installieren.

Weitere Implementierungen (Auswahl)

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

Name Sprache Paket
PyPy Python pypy
Jython Java jython
IronPython .NET ironpython-gitAUR

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.

GUI-Programme erstellen

Ein Tk-Programm, erstellt mittels tkinter zeigt einfaches Fenster an.

Python hat Schnittstellen zu diversen GUI-Toolkits, damit ist es relativ einfach, grafische Anwendungen zu erstellen.

Einfache Fenster mittels tkinter

Python verfügt mittels tkinter über eine Schnitstelle zu Tk. Mittels Tk können sehr einfache grafische Programme erstellt werden. Damit tkinter benutzt werden kann, muss Tk installiert sein.

einfaches_fenster.py
#!/usr/bin/python
import tkinter as tk
root = tk.Tk()

# Fensterinhalte erstellen
label1 = tk.Label(root, text='Hallo, Wikibenutzer,')
label2 = tk.Label(root, text='dies ist ein Beispiel für ein Tk-Programm.')
label3 = tk.Label(root, text='Es wird Pythons tkinter-Implementation genutzt.')
button = tk.Button(root, text='Fenster schließen', command=root.quit)

# Fensterinhalte im Fenster anordnen (hier per pack() einfach untereinander)
label1.pack()
label2.pack()
label3.pack()
button.pack()

# Fenstertitel setzen und Main-Loop starten.
root.title('Beispiel für das Wiki')
root.mainloop()

Das Script wird dann einfach mittels ./einfaches_fenster.py ausgeführt, und das Fenster durch das erstellte Programm dann angezeigt.

Andere Toolit-Schnittstellen (Auswahl)

Name Toolkit Paket Website
Kivy OpenGL-Basierend python-kivy [1]
PyGObject GTK python-gobject [2]
PyQt Qt5/6 python-pyqt5/python-pyqt6 [3]
wxPython wxWidgets wxpython [4]

Weblinks