PyScript

Ein Framework zum Ausführen von Python-Skripten im Webbrowser.

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.

PyScript
Erscheinungsjahr: 2022
Entwickler: Anaconda, Inc.
Aktuelle Version 2024.7.1[1] (4. Juli 2024)
Beeinflusst von: Python[2]
Betriebssystem: Plattformunabhängig
Lizenz: Apache-Lizenz, Version 2.0[3]
pyscript.net

Anwendung

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 eine C-Portierung 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.[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

Hallo-Welt-Programm

Bearbeiten

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-Code kein solches Element, so wird eines beim ersten Aufruf einer Ausgabe der 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>

Hallo-Welt-Programm integriert in Webseite

Bearbeiten

Möchte man die Ausgabe an einer bestimmten Stelle auf der Webseite ausgeben, bietet sich folgendes Beispiel an.

<!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>

Ein Beispiel mit einem Graph

Bearbeiten

Das Beispiel zeigt, wie sich mit wenigen Zeilen Python ein Graph erstellen lässt.

<body>
  <div id="matplotlib-bar"></div>
  <py-script output="matplotlib-bar">
    import matplotlib.pyplot as plt
    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
  </py-script>
</body>

Literatur

Bearbeiten
Bearbeiten

Einzelnachweise

Bearbeiten
  1. github.com.
  2. PyScript. (englisch, abgerufen am 27. Mai 2024): PyScript is a platform for Python in the browser.
  3. Apache License 2.0 (PyScript). In: GitHub. (abgerufen am 27. Mai 2024).
  4. Run Python Script in the Web Browser. In: javatpoint.com. Abgerufen am 19. Januar 2023 (englisch).
  5. Serdar Yegulalp: Intro to PyScript: Run Python in your web browser. In: infoworld.com. 15. Juni 2022, abgerufen am 19. Januar 2023 (englisch).
  6. 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).
  7. 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).
  8. Muhammad Shmoon: How to import external libraries and Python script in pyscript. In: educative.io. Abgerufen am 19. Januar 2023 (englisch).
  9. Yuvraj Chandra: Run Python Visualizations on the Web Using PyScript. In: makeuseof.com. 10. August 2022, abgerufen am 19. Januar 2023 (englisch).
  10. Ifihanagbara Olusheye: How to Use PyScript – A Python Frontend Framework. In: freecodecamp.org. 25. Mai 2022, abgerufen am 19. Januar 2023 (englisch).
  11. How to Create an Interactive Web App With PyScript and Pandas. In: turing.com. Abgerufen am 19. Januar 2023 (englisch).
  12. What is Pyodide? In: pyodide.org. Abgerufen am 19. Januar 2023 (englisch).
  13. Using Pyodide. Supported browsers. In: pyodide.org. Abgerufen am 19. Januar 2023 (englisch).