- PyScript ist eine Open-Source-Plattform, mit der sich Python-Code im Browser ausführen lässt und Webseiten selbst zu einer Python-Laufzeitumgebung werden können
- Sie verbindet die Universalität des Webs mit dem Python-Ökosystem und stellt heraus, dass Python überall dort ausgeführt werden kann, wo es einen Browser gibt
- Da Apps ohne aufwendige Installation im Browser laufen, lassen sich mit der leicht erlernbaren Syntax von Python webbasierte Apps erstellen
- Der Code läuft im Browser der Nutzer, wodurch teure Infrastruktur entlastet wird; Ergebnisse lassen sich über eine URL im Web teilen
- Die Plattform richtet sich sowohl an Einsteiger als auch an fortgeschrittene Nutzer und nennt Einfachheit, Ausdrucksstärke, Skalierbarkeit, Teilbarkeit, Universalität, Sicherheit und Leistungsfähigkeit als zentrale Eigenschaften
Python-Laufzeitumgebung im Browser
- PyScript ist eine Open-Source-Plattform zum Ausführen von Python im Browser
- Ein Beispiel ist die Ausführung von Python-Code in HTML über
script type="py"- Der Beispielcode führt im Browser-Dokument
print('You can!')aus
- Der Beispielcode führt im Browser-Dokument
- Die Verbindung der beiden Technologie-Ökosysteme Web und Python ist die zentrale Ausrichtung von PyScript
- Das Web ist eine weltweit universelle Computing-Plattform
- Python ist eine der beliebtesten Programmiersprachen der Welt
- Entsprechend stellt PyScript die Botschaft in den Vordergrund, dass Python überall dort ausgeführt werden kann, wo es einen Browser gibt
Einstieg und Plattformmerkmale
- Auf PyScript.com lässt es sich kostenlos und einfach ausprobieren
- Die Dokumentation richtet sich sowohl an Einsteiger als auch an fortgeschrittene Nutzer
- In den Community-Ressourcen lässt sich sehen, was man mit PyScript erstellen kann
- Über Discord kann man sich mit anderen PyScript-Nutzern vernetzen
- PyScript hebt folgende Eigenschaften hervor
- Easy: Apps laufen ohne aufwendige Installation im Browser
- Expressive: Apps lassen sich mit einer so leistungsfähigen, beliebten und leicht erlernbaren Sprache wie Python erstellen
- Scalable: Der Code läuft im Browser der Nutzer, sodass keine teure Infrastruktur nötig ist
- Shareable: Anwendungen können über eine URL im Web geteilt werden
- Universal: Wo ein Browser läuft, läuft auch der Code
- Secure: Läuft auf der bewährten Computing-Plattform Browser
- Powerful: Nutzt die Stärken von Web und Python gemeinsam
1 Kommentare
Hacker-News-Kommentare
Falls dich Anwendungsbeispiele interessieren: Das Dallas-Crime-Statistics-Panel-Dashboard kann man hier sehen: https://crimede-coder.com/graphs/Dallas_Dashboard
Der Start dauert etwa 1 Minute und umfasst die Installation mehrerer Python-Bibliotheken sowie das Laden eines externen 5-MB-Datensatzes. Sobald es einmal läuft, reagiert es ziemlich gut und funktioniert auch auf dem iPhone gut.
Viele Unternehmen, mit denen ich zusammenarbeite, nutzen die kostenlose Version von Tableau und aktualisieren die Daten manuell, weil die kostenlose Version keine direkte Verbindung zum Datenspeicher erlaubt. Das hier ist eine kostenlose Alternative, und per GitHub Actions werden komprimierte CSV-Dateien erzeugt, die dann aus der Umgebung geladen werden
Ich hätte erwartet, dass es deutlich länger als 8 Sekunden dauert, genug Python zu bootstrappen, um eine Panel-App in Safari auf dem iPad laufen zu lassen. Ein Shift-Reload dauert etwa 6 Sekunden
Ich frage mich auch, ob das Problem darin besteht, dass Python für die Datenanalyse benötigt wird, man es aber wegen der Serverkosten nicht serverseitig ausführen möchte
Selbst nach einem Blick auf die Homepage war ich verwirrt, und auch nach dem Lesen der Doku wusste ich nicht genau, was das eigentlich ist
Als ich ein wenig damit herumgespielt habe, konnte ich „Hello World“ auf einer Website anzeigen lassen. Es sieht aus wie ein Skript, das nach Skripten mit
type="py"sucht und sie über Pyodide von Python nach JavaScript transpiliertAber die Demo auf der Homepage ist ein REPL und der Titel spricht von einer „Plattform“, daher bin ich immer noch verwirrt
js-Paket scheint auf das eigentlichewindow-Objekt abzubilden und eine API zu sein, die über irgendein Proxy-Objekt DOM-Methoden aufruftIch hatte erwartet, Python in der Browser-Konsole ausführen zu können
Worin unterscheidet sich das von Pyodide? https://pyodide.org/en/stable/
PyScript kann Pyodide oder MicroPython verwenden, und MicroPython ist tatsächlich ziemlich klein. Auf dieser Laufzeitumgebung bietet PyScript mehr als nur das Ausführen von Python-Code: Es liefert Komfortfunktionen und Verbesserungen der Developer Experience, damit man Python wirklich für Webprogrammierung einsetzen kann
Ich habe mich in letzter Zeit intensiv damit beschäftigt, mit PyScript Python-CLI-Apps im Browser auszuführen
Es fühlte sich die ganze Zeit ziemlich hacky an, besonders sobald Abhängigkeiten ins Spiel kamen. Ich konnte Pydantic 2.x nicht verwenden und musste Wrapper-Klassen als Workaround bauen. Ich wollte eigentlich die gesamte Logik in Python-Dateien unterbringen, musste wegen fehlender Funktionen aber einen Teil in JavaScript schreiben
Wenn man nur eine einfache UI und etwas benutzerdefinierte UI-Logik über vorhandenen Python-Code legen will, kann es in Ordnung sein, aber vielleicht passen Streamlit oder Gradio besser
GitHub-Repository: https://github.com/data-catering/data-contract-playground
Website: https://data-catering.github.io/data-contract-playground/
Es ist schwer, echte Anwendungsfälle zu finden. Wenn man Machine-Learning-Modelle ausführen möchte, kann man sie als ONNX bauen: https://onnxruntime.ai/docs/tutorials/web/
Ich frage mich, ob das effizient ist, um browserbasierte Apps statt mit JS/TS damit zu bauen
Es wäre schön, wenn man in Firefox Skripte schreiben und damit den Browser steuern könnte. Also so, dass die Ausführung in jeder gewünschten Phase erfolgen kann, etwa zum Zeitpunkt eines GET, nach allen GETs oder vor bzw. nach der Auswertung von JavaScript.
Ich frage mich, ob es ein Tool gibt, das so etwas kann und bei dem zugleich alle Python-Funktionen auf dem Host zugänglich sind.
Ist das nicht dasselbe Konzept wie Brython? BRowser pYTHON: https://brython.info/
https://github.com/brython-dev/brython
https://yasoob.me/2019/05/22/running-python-in-the-browser/
Ein bisschen Eigenwerbung: Ich habe mit PyScript ein etwas meinungsstärkeres reaktives Frontend-Framework gebaut. Es ist ein wenig von Vue.js inspiriert: https://puepy.dev
Früher habe ich damit einen Markdown-Renderer gebaut. Den sehr einfachen Quellcode kann man hier sehen: https://pyscript.com/@stuartmaxwell/markdown-previewer-v2/la...
Die App läuft auf Mobilgeräten wohl nicht besonders gut, sollte aber auf dem Desktop in Ordnung sein. Ich habe diesen Code in einer Blog-Anwendung verwendet, die ich mit Django geschrieben habe.
Bei jeder WASM-Konfiguration ist es auf Dauer sehr lästig, dass man wegen CORS viele APIs nicht aufrufen oder keine Websites scrapen kann, was eine große Einschränkung ist.
Natürlich ist CORS wichtig, um Dinge wie XSS zu verhindern, aber es wäre schön, wenn es einen anderen Weg gäbe, als einen Proxy aufzusetzen, der CORS entfernt. Dann bleibt einem eine IP, die mit höherer Wahrscheinlichkeit blockiert wird als eine Wohn-IP.