Pyodide is a Python distribution for the browser and Node.js based on WebAssembly.

What is Pyodide?#

Pyodide is a port of CPython to WebAssembly/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. Many packages with C extensions have also been ported for use with Pyodide. These include many general-purpose packages such as regex, pyyaml, lxml and scientific Python packages including numpy, pandas, scipy, matplotlib, and scikit-learn.

Pyodide comes with a robust Javascript ⟺ Python foreign function interface so that you can freely mix these two languages in your code with minimal friction. This includes full support for error handling (throw an error in one language, catch it in the other), async/await, and much more.

When used inside a browser, Python has full access to the Web APIs.

Try Pyodide#

Try Pyodide in a REPL directly in your browser (no installation needed).

Table of contents#

Using Pyodide#


The Development section helps Pyodide contributors to find information about the development process including making packages to support third party libraries.


The Project section gives additional information about the project’s organization and latest releases.