PyScript : le langage Python dans votre navigateur

Par:
fredericmazue

lun, 09/05/2022 - 16:03

PyScript est un projet qui a été annoncé par Anaconda lors de PyCon US 2022. PyScript est un framework qui permet aux utilisateurs de créer des applications Python riches dans le navigateur en utilisant un mélange de Python et de HTML standard.

Les objectifs de PyScript sont :

  • Offrir une API propre et simple
  • Prend en charge le HTML standard
  • Étendre le HTML pour lire des composants personnalisés qui sont avisés et fiables
  • Fournir un système de composants enfichables et extensibles

Pour Anaconda, De nombreux éléments font du navigateur une pile très solide, tels que les progrès réalisés avec WebAssembly/WASM, Emscripten, et Pyodide. Le navigateur constitue une excellente machine virtuelle, même s'il n'est pas traditionnellement considéré comme tel. Toujours selon Anaconda, Il est regrettable qu'au cours des dernières décennies, Python et les langages d'interface utilisateur puissants tels que le HTML, le CSS et le JavaScript modernes ne se soient pas exploités mutuellement. En l'occurrence, PyScript fournit une communication bidirectionnelle entre les objets et les espaces de noms Python et Javascript.

Pour utiliser PyScript, il vous suffit de le télécharger sur son site officiel, et d'ajouter ces lignes à vos pages HTML :

<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>

Le code PyScript se place entre des balises py-script. Voici donc une page HTML 'hello World' :

<html>
  <head>
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
  </head>
  <body> <py-script> print('Hello, World!') </py-script> </body>
</html>

Le site officiel pyscript.net de PyScript propose de nombreux exemples d'utilisation

PyScript est un logiciel libre sous licence Apache 2.0, disponible sur GitHub

Commentaires

Il y a un bruit fou sur la toile sur ce projet (et 10 000 étoiles sur github vs la moitié pour brython). Sauf que pyscript est en alpha (leurs exemples sont très très limités, très lents, et sur mes deux navigateurs ni le hello world, ni ceux un peu avancés ne marchent).

À côté de ça, Brython permet depuis longtemps de remplacer le codage en js par du python, de manière transparente assez légère et rapide. (J'ai déployé en production une appli en web + android + webapp installable comme ça).

Bon, brython ne transpile que le python (adieu les modules en c) et pyscript tout ce qui compile en wasm en théorie.