07.05.2022 — 13:00 Uhr | Geschätzte Lesedauer: 3 Minuten
Einleitung
Das PyScript ist ein Framework, das mit einer Mischung aus Python und Standard-HTML im Browser ausgeführt werden kann, indem es die HTML-Schnittstelle und die Leistungsfähigkeit von Pyodide, WASM und modernen Webtechnologien nutzt. Das könnte ein mächtiges Werkzeug für die Erstellung von (Responsiven-)Webanwendungen sein.
Wie funktioniert es?
PyScript ist abhängig von Pyodide. Es ist also eine Python-Distribution (Portierung von CPython) für den Browser und Node.js, die auf WebAssembly basiert.
„WebAssembly [abgekürzt “Wasm” oder “WASM”] ist eine neue Art von Code, der in modernen Webbrowsern ausgeführt werden kann. Es handelt sich dabei um eine Assembler-ähnliche Low-Level-Sprache mit einem kompakten Binärformat, die mit nahezu nativer Leistung läuft und Sprachen wie C/C++, C# und Rust ein Kompilierungsziel bietet, damit sie im Web laufen können.”
MDN Web Docs – Mozilla
Mehr über WebAssembly kannst du hier erfahren.
Die wichtigsten Dinge, die man über PyScript wissen sollte:
- Python im Browser: Ermöglicht Drop-in-Inhalte, externes Datei- und Anwendungshosting, ohne auf eine serverseitige Konfiguration angewiesen zu sein.
- Python Ökosystem: Führe viele beliebte Pakete von Python und dem Scientific Stack im Browser aus (wie numpy, pandas, scikit-learn und mehr)
- Python mit JavaScript: Bidirektionale Kommunikation zwischen Python- und Javascript-Objekten und Namespaces.
- Umgebungsverwaltung: Erlaube Nutzern zu definieren, welche Pakete und Dateien erforderlich sind, damit der Seitencode ausgeführt werden kann.
- Flexibles Framework: Ein flexibles Framework, das genutzt werden kann, um neue und erweiterbare Komponenten direkt in Python zu erstellen und gemeinsam zu nutzen.
Wichtig: PyScript befindet sich derzeit in der Alpha-Phase. Es ist noch nicht einsatzbereit. Du kannst den Quellcode auf GitHub finden.
PyScript Codebeispiele
Zuerst musst PyScript in der HTML-Datei eingebunden werden.
<head>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
</head>
Jetzt kannst du PyScript in deiner HTML-Datei verwenden. PyScript implementiert derzeit die folgenden Elemente:
<py-script>
: Das wichtigste PyScript-Element. Hier kannst du deinen ausführbaren Python-Code auf der Webseite einfügen. Das Element selbst wird nicht auf der Seite gerendert.<py-repl>
: Dies ist eine REPL, die verwendet werden kann, um Python-Code interaktiv auszuführen.
Python Hello World Beispiel
<html>
<head>
<title>PyScript Hello World Beispiel</title>
<!--PyScript einbinden-->
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<!--PyScript einbinden-->
</head>
<body>
<!--Python Code ausführen-->
<py-script> print('Hello World!') </py-script>
<py-script> print( 1 + 1 ) </py-script>
<!--Python Code ausführen-->
</body>
</html>
Live Beispiel: hier
Python REPL Beispiel
<head>
<title>PyScript REPL Beispiel</title>
<!--PyScript einbinden-->
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<!--PyScript einbinden-->
</head>
<body>
<!--Python REPL ausführen-->
<py-repl id="my-repl" auto-generate="true"> </py-repl>
<!--Python REPL ausführen-->
</body>
</html>
Live Beispiel: hier
Fazit
Mit PyScript werden wir in der Lage sein, Python-Code (und nicht nur den) direkt in unserem Browser auszuführen. Das Projekt befindet sich noch im Alpha-Stadium, aber wir können bereits mit einer Auswahl von Bibliotheken spielen, die von Pyodide unterstützt werden.
Ich persönlich bin mir zum jetzigen Zeitpunkt nicht sicher, was ich von PyScript halten soll. Es scheint vielversprechend zu sein, aber es kann potenziell eine Menge neuer Sicherheitsprobleme aufwerfen. Außerdem sehen wir jetzt schon, dass selbst die Ausführung einiger einfacher Skripte einen erheblichen Overhead in Bezug auf die Ausführungszeit verursacht. Ich bin mir also nicht sicher, wie praktisch es sein wird, größere Code-Blöcke im Browser auszuführen.
Bei Fragen, Verbesserungsvorschlägen oder anderen Anliegen, schreibe einen Kommentar oder eine E-Mail an kontakt@toaaa.de