PyScript ist ein Framework zum Ausführen von Python-Skripten im Webbrowser.[1][2] Pyscript wurde im Juni 2022 von Peter Wang auf einer Python Deeveloper Konferenz der Öfffentlichkeit vorgestellt.[3] Pyscript wird primär von der Anaconda, Inc entwickelt.
Anwendung
Mit Pyscript können Python Scripte, welche normalerweise auf dem Server laufen, auch in einem Webbrowser ausgeführt werden. Dadurch kann dieselbe Programmiersprache auf dem Server und im Frontend verwendet werden. Bei Pyscript handelt es sich um eine Typescript Bibliothek, welche die Webseite lädt und welche in Tags eingebundene Python Scripts interpretiert und ausführt. Außer dem Javascript bestehen keine weiteren Abhängigkeiten. Normallerweise wird die Programmiersprache Javascript eingesetzt um Funktionen einer Webseite zur Verfügung zu stllen. Pyscript kann Javascript ersetzen, kann aber auch mit Javascript koexistieren. So kann Javascript Pyscript Funktionen aufrufen und umgekehrt. Der Vorteil von Pyscript besteht darin, dass es sehr viele Bibliotheken in der Sprache Python gibt, welche man auch auf Webseiten nutzen könnte. Diese müssen auf dem Server installiert sein.[4] Als Beispiel kann man Graphikbibliotheken nennen um Bilder zu manipulieren. Die Bilddaten müssen nicht zuerst an den Server zu Verarbeitung an den Server geschickt werden. Die Programmiersprache Python wurde primär auf dem Backend (Serverseitig) eingesetzt. Unterstützung für reine Frontendentwicklung war kaum vorhanden. Pyscript soll diese Lücke schließen helfen.[5][6]
Damit Python Scripte auf einem Browser ausgeführt werden können benötigt man eine Python Laufzeitumgebung. Es gibt mehrere Python Laufzeitumgebungen welche normallerweise in der C Sprache geschrieben worden sind. Pyscript kann theoretisch mit verschiedenen Laufzeitumgebungen zusammenarbeiten. Standartmäßig wird ein C Port der Python Laufzeitumgebung nach WebAssembly mit Namen Pyodide verwendet. Viele der bekannten Python Packages wurden auch nach Webassembly portiert und können damit von Pyscript verwendet werden. Pyodide wurde 2018 von Michael Droettboom bei der Mozilla Foundation entwickelt.[7] Um Pyodide und damit Pyscript in einem Browser verwenden zu können benötigt man Firefox mit einer Version 70.0 oder einen Google Chrome mit Version 71.0 oder höher.[8]
Hallo-Welt-Programm
Eine von mehreren möglichen Versionen des Hallo-Welt-Programms in Pyscript. Standardmäßig erfolgt die Ausgabe in einem DIV Element welches mit einem py-terminal Tag deklariert wird. Befindet sich im HTML kein solches Element so wird dies standardmässig beim ersten Aufruf einer Ausgabe an die Webseite hinzugefügt.
<html>
<head>
<link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
<script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head>
<body>
<py-script>
print('Hello, World!')
</py-script>
</body>
</html>
Möchte man die Ausgabe an einer bestimmten Stelle auf der Webseite ausgeben, bietet sich folgendes Beispiel an.
Hallo-Welt Beispiel integriert in Webseite
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>An eine bestimmte Stelle einer Seite schreiben</title>
<link rel="stylesheet" href="https://pyscript.net/latest/pyscript.css" />
<script defer src="https://pyscript.net/latest/pyscript.js"></script>
</head>
<body>
<!-- Ein Div zur Aufnahme des Contents -->
<div id="manual-write"></div>
<!-- Ein Button der geklickt werden kann -->
<button py-click="write_to_page()" id="manual">Say Hello</button>
<py-script>
def write_to_page():
manual_div = Element("manual-write")
manual_div.element.innerHTML = "<p><b>Hello World</b></p>"
</py-script>
</body>
</html>
Einzelnachweise
- ↑ javatpoint.com: Run Python Script in the Web Browser
- ↑ infoworld.com Intro to PyScript: Run Python in your web browser
- ↑ Bartosz Zaczyński: realpython.com, 6. Juni 2022 A First Look at PyScript: Python in the Web Browser
- ↑ educative: How to import external libraries and Python script in pyscript
- ↑ freecodecamp.org How to Use PyScript – A Python Frontend Framework
- ↑ How to Create an Interactive Web App With PyScript and Pandas
- ↑ https://pyodide.org/en/stable/project/about.html pyodode.org: What is Pyodide?
- ↑ Supported browsers