Steve May 14, 2022

Want to Run Python Code in a Browser? Soon You Might Be Able To (

Posted by EditorDavid from the better-than-PHP dept.

ZDNet reports news from PyCon 2022 (“the first in-person meet-up for Python contributors since 2019 due to the pandemic”)

“Developers revisited the idea of running Python code in the browser….” CPython developer Christian Heimes and fellow contributor Ethan Smith detailed how they enabled the CPython main branch to compile to WebAssembly. CPython, short for Core Python, is the reference implementation that other Python distributions are derived from. CPython now cross-compiles to Wasm using Emscripten, a toolchain that compiles projects written in C or C++ to Node.js or Wasm runtimes. The Python Software Foundation highlighted the work in a blog post: “Python can be run on many platforms: Linux, Windows, Apple Macs, microcomputers, and even Android devices. But it’s a widely known fact that, if you want code to run in a browser, Python is simply no good — you’ll just have to turn to JavaScript,” it notes.

“Now, however, that may be about to change.”

While the Foundation notes cross-compiling to WebAssembly is still “highly experimental” due to missing modules in the Python standard library, nonetheless, PyCon 2022 demonstrated growing community interest in making Python a better language for the browser.

The article notes additional news from Anaconda (makers of the a Python distribution for data science): the announcement of PyScript, “a system for interleaving Python in HTML (like PHP).” It allows developers to write and run Python code in HTML, and call Javascript libraries in PyScript. This system allows a website to be written entirely in Python.

PyScript is built on Pyodide, a port of CPython, or a Python distribution for the browser and Node.js that’s based on WebAssembly and Emscripten…. “Pyodide makes it possible to install and run Python packages in the browser with micropip. Any pure Python package with a wheel available on PyPI is supported,” the Pyodide project states. Essentially, it compiles Python code and scientific libraries to WebAssembly using Emscripten.

Success is something I will dress for when I get there, and not until.


Read More