Skip to main content

sphinx-pyodide

Sphinx extension to add a pyodide directive for embedding executable Python code blocks in documentation using Pyodide (Python in the browser via WebAssembly).

For full details and examples, refer to the documentation.

How to Use

Install with pip, uv, or similar:

pip install sphinx-pyodide

Enable the extension by including in your Sphinx conf.py:

extensions = ["sphinx_pyodide"]

The output blocks support light and dark mode. For best results, use a Sphinx theme with built-in dark mode support such as Furo or the PyData Sphinx Theme.

Use in documentation files. Build-time output is displayed as static output below each block. Interactive execution requires opt-in — click the Enable Interactive button in the note above the first block to load Pyodide and run blocks live in the browser.

.. pyodide::

    print("Hello from Pyodide!")
    import numpy as np
    print(np.array([1, 2, 3]))

Options

Option Type Description
:packages: string Comma-separated PyPI packages to load (e.g., numpy, pandas). Local .whl files are also supported.
:editable: flag Allow users to edit the code before running.
:output: string Static output displayed in the output panel until interactive execution is enabled.
:show-errors: flag Display runtime errors in the live browser output.
:setup-code: string Python code to run once before the main block (e.g., imports).

Development

Setup

Install development dependencies; install pre-commit hooks on first setup.

uv sync --dev
pre-commit install

Testing

Tests use sphinx.testing fixtures via pytest.

pytest tests/
pytest tests/ -k test_name
pytest tests/ --cov=src/sphinx_pyodide

Build Documentation

# One-time build
sphinx-build -b html docs/source docs/build

# Auto-reload with live preview (recommended for development)
sphinx-autobuild docs/source docs/build

Note: Pyodide blocks that install dependencies from local wheels require an HTTP server (file:// will not work due to CORS). Options are to build and serve with python -m http.server -d docs/build or serve with sphinx-autobuild.

Acknowledgments

Substantial portions of this code were developed with assistance from agentic AI coding tools (primarily ClaudeCode & OpenCode and associated models).

License

Apache 2.0

Metadata

Release files for sphinx-pyodide 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sphinx-pyodide 0.1.1
File Size Uploaded
sphinx_pyodide-0.1.1.tar.gz 108.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sphinx-pyodide 0.1.1
File Interpreter ABI Platform
sphinx_pyodide-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 121.8 kB

Release files / sphinx_pyodide-0.1.1.tar.gz

Download URL sphinx_pyodide-0.1.1.tar.gz
Size 108.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a8568e78cda73b4e7469712084f61e39eedf3cd6b210b0fda16319a246156a59
BLAKE2b-256 checksum
How to use checksums
c6f068a9e03a3c30719f0a725bad9a1b54dfbf2a70b9661111564fc9a5823357
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sphinx_pyodide-0.1.1-py3-none-any.whl

Download URL sphinx_pyodide-0.1.1-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f92f52438cc6d600e9a378a3c0e3048a8751b506506a02118d05e203f5b91ebb
BLAKE2b-256 checksum
How to use checksums
3c466f6d4da49d719b72050b7f600b0403b1f697cf8b3402e6c7da51469ba2f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page