PyScript
| PyScript | |
|---|---|
| Basisdaten | |
| Erscheinungsjahr: | 2022 |
| Entwickler: | Anaconda, Inc. |
| Aktuelle Version | 2025.10.3[1] (23. Oktober 2025) |
| Beeinflusst von: | Python[2] |
| Betriebssystem: | Plattformunabhängig |
| Lizenz: | Apache-Lizenz, Version 2.0[3] |
| pyscript.net | |
PyScript ist ein Framework zum Ausführen von Python-Skripten im Webbrowser.[4][5] PyScript wurde im Juni 2022 von Peter Wang auf einer Python-Entwicklerkonferenz der Öffentlichkeit vorgestellt.[6] PyScript wird primär von der Anaconda, Inc entwickelt.
Anwendung
[Bearbeiten | Quelltext bearbeiten]Mit PyScript können Python-Skripte, welche normalerweise auf einem Server laufen, auch in einem Webbrowser ausgeführt werden.[7] Dadurch kann dieselbe Programmiersprache im Backend (auf dem Server) und im Frontend (im Webbrowser) verwendet werden. Bei PyScript handelt es sich um eine TypeScript-Bibliothek, welche die Webseite lädt und die in Tags eingebundenen Python-Skripte interpretiert und ausführt. Außer der JavaScript-Bibliothek und den CSS-Regeln von PyScript, bestehen keine weiteren Abhängigkeiten. Normalerweise wird die Programmiersprache JavaScript eingesetzt, um einer Webseite dynamische Funktionen zur Verfügung zu stellen. PyScript kann JavaScript ersetzen, 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.[8] Als Beispiel kann man Grafikbibliotheken zur Erzeugung und Bearbeitung von digitalen Bilder nennen. Die Bilddaten müssen dafür nicht zuerst an den Server zur Verarbeitung geschickt werden. Ein weiteres Beispiel sind Funktionsgraphen und Diagramme.[9] Die Programmiersprache Python wurde primär serverseitig eingesetzt. Unterstützung für reine Frontendentwicklung war kaum vorhanden. PyScript soll diese Lücke schließen helfen.[10][11]
Damit Python-Skripte in einem Browser ausgeführt werden können, benötigt man eine Python-Laufzeitumgebung. Es gibt mehrere Python-Laufzeitumgebungen, die normalerweise in der Programmiersprache C geschrieben sind. PyScript kann theoretisch mit verschiedenen Laufzeitumgebungen zusammenarbeiten. Standardmäßig wird Pyodide (eine Portierung der CPython-Laufzeitumgebung nach WebAssembly) 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.[12] 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.[13]
Beispiele
[Bearbeiten | Quelltext bearbeiten]Beispiel: Wie spät ist es?
[Bearbeiten | Quelltext bearbeiten]Das nachfolgende Beispiel importiert drei Pakete. Diese enthalten Funktionen zur Ausgabensteuerung, Datumsverwaltung und Ereignisbehandlung. Bei jedem Klick auf die Schaltfläche wird das aktuelle Datum und die aktuelle Uhrzeit in einer neuen Zeile ausgegeben. Die einzelnen Bestandteile des aktuellen Datums werden so formatiert, dass sie der üblichen Schreibweise in Deutschland entsprechen.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>PyScript: Wie spät ist es?</title>
<link rel="stylesheet" href="https://pyscript.net/releases/2025.10.3/core.css">
<script defer type="module" src="https://pyscript.net/releases/2025.10.3/core.js"></script>
</head>
<body>
<button id="btnTime">Wie spät ist es?</button>
<script type="py">
from pyscript import when, display
from datetime import datetime
@when("click", "#btnTime")
def click_handler(event):
now = datetime.now()
display(
now.strftime(
"Heute ist der %d.%m.%Y. " +
"Die aktuelle Uhrzeit lautet %H:%M:%S."
)
)
</script>
</body>
</html>
Alternativ zur Angabe <script type="py"> kann auch (wie im unteren Beispiel) das Element <py-script> genutzt werden. Allerdings wird die neue Schreibweise empfohlen.[14]
PyScript bietet auch die Möglichkeit an, über eine Eingabeaufforderung mit dem Benutzer zu kommunizieren. Dafür muss dem Element <script type="py"> bzw. dem Element <py-script> das Attribut terminal hinzugefügt werden. Falls auch Eingaben möglich sein sollen, muss zusätzlich noch das Attribut worker angegeben werden.[15] In früheren Versionen konnte ein Terminal auch mit dem Element <py-terminal> realisiert werden.
Beispiel: Säulendiagramm
[Bearbeiten | Quelltext bearbeiten]Das Beispiel zeigt, wie sich mit wenigen Zeilen Python ein Säulendiagramm erstellen lässt.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>PyScript: Säulendiagramm</title>
<link rel="stylesheet" href="https://pyscript.net/releases/2025.10.3/core.css">
<script defer type="module" src="https://pyscript.net/releases/2025.10.3/core.js"></script>
</head>
<body>
<div id="mpl"></div>
<py-config>
packages = ["matplotlib"]
</py-config>
<py-script>
import matplotlib.pyplot as plt
from pyscript import display
fig, ax = plt.subplots()
x = ["Äpfel", "Birnen", "Bananen", "Ananas"]
y = [3, 7, 8, 10]
plt.bar(x, y)
plt.xlabel('Früchte')
plt.ylabel('Beliebtheit')
plt.title('Früchte und deren Beliebtheit')
fig
display(fig, target="mpl")
</py-script>
</body>
</html>
Damit derartige Diagramme erstellt werden können, muss in einem <py-config>-Block die Erweiterung matplotlib geladen werden.[16][17]
Literatur
[Bearbeiten | Quelltext bearbeiten]- Pina Merkert: PyScript im Browser statt JavaScript. In: Heise Medien (Hrsg.): c’t Python. 2022, ISBN 978-3-95788-318-6, S. 30 ff. (eingeschränkte Vorschau in der Google-Buchsuche).
- Varun P. Divadkar: Learn Autonomous Programming with Python. 1. Auflage. BPB Publications, 2024, ISBN 978-93-5551763-0, The PyScript Framework, S. 257–274 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ github.com. (englisch).
- ↑ PyScript. (englisch, abgerufen am 27. Mai 2024): “PyScript is a platform for Python in the browser.”
- ↑ Apache License 2.0 (PyScript). In: GitHub. (abgerufen am 27. Mai 2024).
- ↑ Run Python Script in the Web Browser. In: tpointtech.com. Abgerufen am 19. Januar 2023 (englisch).
- ↑ Serdar Yegulalp: Intro to PyScript: Run Python in your web browser. In: infoworld.com. 15. Juni 2022, abgerufen am 19. Januar 2023 (englisch).
- ↑ Bartosz Zaczyński: A First Look at PyScript: Python in the Web Browser. In: realpython.com. 6. Juni 2022, abgerufen am 19. Januar 2023 (englisch).
- ↑ Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire: Python in a Nutshell. 4. Auflage. O’Reilly, 2023, ISBN 978-1-09-811352-0, PyScript, S. 31 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ Muhammad Shmoon: How to import external libraries and Python script in pyscript. In: educative.io. Abgerufen am 19. Januar 2023 (englisch).
- ↑ Yuvraj Chandra: Run Python Visualizations on the Web Using PyScript. In: makeuseof.com. 10. August 2022, abgerufen am 19. Januar 2023 (englisch).
- ↑ Ifihanagbara Olusheye: How to Use PyScript – A Python Frontend Framework. In: freecodecamp.org. 25. Mai 2022, abgerufen am 19. Januar 2023 (englisch).
- ↑ How to Create an Interactive Web App With PyScript and Pandas. In: turing.com. Abgerufen am 19. Januar 2023 (englisch).
- ↑ What is Pyodide? In: pyodide.org. Abgerufen am 19. Januar 2023 (englisch).
- ↑ Using Pyodide. Supported browsers. In: pyodide.org. Abgerufen am 19. Januar 2023 (englisch).
- ↑ First steps. In: docs.pyscript.net. Abgerufen am 24. Oktober 2025 (englisch).
- ↑ Terminal. In: docs.pyscript.net. Abgerufen am 26. Oktober 2025 (englisch).
- ↑ Configuration. In: docs.pyscript.net. Abgerufen am 26. Oktober 2025 (englisch).
- ↑ Matplotlib: Visualization with Python. In: matplotlib.org. Abgerufen am 26. Oktober 2025 (englisch).