Skip to main content

Python kernel for JupyterLite powered by Pyodide

Project description

jupyterlite-pyodide-kernel

A Python kernel for JupyterLite powered by Pyodide,

ci-badge lite-badge docs-badge

Install

To install the Pyodide kernel labextension and the CLI addons for jupyter lite, run:

pip install jupyterlite-pyodide-kernel

or with conda, mamba, micromamba, etc.

conda install -c conda-forge jupyterlite-pyodide-kernel

For more options see the development install or contributing guide.

Optional Features

Lock

Install the [lock] extra for compatible versions of pyodide-lock and uv, used to add local or PyPI packages and their import name and dependency information to the Pyodide lockfile:

  • from PyPI: jupyterlite-pyodide-kernel[lock]
  • from conda-forge: jupyterlite-pyodide-kernel-with-lock

Compatibility

With Jupyter

status jupyterlite-pyodide-kernel jupyterlite-core jupyterlab notebook retrolab
stable 0.8.* >=0.8,<0.9 >=4.6.0,<4.7 >=7.6.0,<7.7 -
stable 0.7.* >=0.7,<0.8 >=4.5.0,<4.6 >=7.5.0,<7.6 -
stable 0.6.* >=0.6,<0.7 >=4.4.3,<4.5 >=7.4.3,<7.5 -
stable 0.5.* >=0.5,<0.6 >=4.3.0,<4.4 >=7.3.0,<7.4 -
stable 0.4.* >=0.4,<0.5 >=4.2.0,<4.3 >=7.2.0,<7.3 -
stable 0.3.* >=0.3,<0.4 >=4.1.1,<4.2 >=7.1.0,<7.2 -
stable 0.2.* >=0.2,<0.3 >=4.0.7,<4.1 >=7.0.5,<7.1 -
stable 0.1.* >=0.1,<0.2 >=3.5,<3.6 - >=0.3,<0.4

Installing the matching version of JupyterLab with your package manager can help ensure matching labextension assets and kernel dependencies, even though this kernel does not yet work in a full, jupyter_server-hosted client such as JupyterLab or Notebook.

With Pyodide

jupyterlite-pyodide-kernel pyodide python emscripten pyodide-lock uv
>=0.1.0,<=0.1.1 0.23.* 3.10.* 3.1.29
>=0.1.2,<=0.2.1 0.24.* 3.10.* 3.1.45
>=0.2.2,<=0.2.3 0.25.* 3.11.* 3.1.46
>=0.3.*,<=0.4.0 0.25.* 3.11.* 3.1.46
>=0.4.*,<=0.4.6 0.26.* 3.12.* 3.1.58
>=0.4.7,<=0.5.0 0.27.* 3.12.* 3.1.58
>=0.5.0,<=0.6.0 0.27.* 3.12.* 3.1.58
>=0.6.0,<=0.7.0 0.27.* 3.12.* 3.1.58
>=0.7.0,<=0.8.0 0.29.* 3.13.* 4.0.9
>=0.8.0,<=0.9.0 0.29.* 3.13.* 4.0.9 >=0.1.2,<0.2 >=0.9.27

Note: the Emscripten version is strict down to the patch version.

Usage

Once installed, building a JupyterLite site will include a kernel which uses the full Pyodide CDN distribution:

jupyter lite build

The build configuration of the Pyodide distribution, the kernel, and package import behavior can be configured in jupyter_lite_config.json. Some features can be configured with CLI aliases and flags. See the full current list by running:

jupyter lite --help

This should show something like the following:

... for configuring the Pyodide distribution
  --pyodide=<Unicode>
      Local path or URL of a pyodide distribution tarball
      Default: ''
      Equivalent to: [--PyodideAddon.pyodide_url]
... adding extra wheels, installable at runtime with %pip
  --piplite-wheels=<typedtuple-item-1>...
      Local paths or URLs of piplite-compatible wheels to copy and index
      Default: ()
      Equivalent to: [--PipliteAddon.piplite_urls]
.... patching the Pyodide lockfile for automatically imported packages
# flags
--pyodide-lock
    Use pyodide-lock and uv to customize pyodide-lock.json
    Equivalent to: [--PyodideLockAddon.enabled=True]
--pyodide-lock-no-constrain-extensions
    Add ``LiteBuildConfig.federated_extensions`` to constraints
    Equivalent to: [--PyodideLockAddon.constrain_extensions=False]

# options
--pyodide-lock-url=<Unicode>
    URL of a remote pyodide-lock.json:
    https://cdn.jsdelivr.net/pyodide/v0.29.3/full/pyodide-lock.json
    Default: ''
    Equivalent to: [--PyodideLockAddon.pyodide_lock_url]
--pyodide-lock-wheels=<typedtuple-item-1>...
    paths to local wheels or folders to include in pyodide-lock.json
    Default: ()
    Equivalent to: [--PyodideLockAddon.wheels]
--pyodide-lock-constraints=<typedtuple-item-1>...
    PEP-508 specs for Python packages to lock only if required in pyodide-
    lock.json; may include ``-r/--requirements`` and  ``-g/--group`` relative to
    ``lite_dir``
    Default: ()
    Equivalent to: [--PyodideLockAddon.constraints]
--pyodide-lock-lite-constraints=<Unicode>
    path relative to ``lite_dir`` to a ``requirements.txt``-style file with
    versions of all `none-any.whl` packages from pyodide-lock.json written if
    missing, otherwise added to ``constraints`` and left unchanged
    Default: ''
    Equivalent to: [--PyodideLockAddon.lite_constraints_file]
--pyodide-lock-specs=<typedtuple-item-1>...
    PEP-508 specs for Python packages to include in pyodide-lock.json; may
    include ``-r/--requirements`` and ``-g/--group`` relative to ``lite_dir``
    Default: ()
    Equivalent to: [--PyodideLockAddon.specs]
--pyodide-lock-excludes=<typedtuple-item-1>...
    extra Python package names to exclude from pyodide-lock.json
    Default: ()
    Equivalent to: [--PyodideLockAddon.excludes_extra]
--pyodide-lock-prefetch=<typedtuple-item-1>...
    extra Python package names from pyodide-lock.json to prefetch while
    initializing Pyodide
    Default: ()
    Equivalent to: [--PyodideLockAddon.prefetch_extra]

Learn more

⚠️ The documentation for advanced configuration is available from the main JupyterLite documentation site:

Uninstall

To remove the extension, run:

pip uninstall jupyterlite-pyodide-kernel  # or however you installed it

Prerelease Versions

To install pre-release versions with pip:

pip install --upgrade --pre jupyterlite-pyodide-kernel

Or, similarly for the conda ecosystem, for alpha packages:

conda install \
  -c conda-forge/label/jupyterlite_core_alpha \
  -c conda-forge/label/jupyterlite_pyodide_kernel_alpha \
  -c conda-forge \
  jupyterlite-pyodide-kernel

Note: _beta and _rc packages would follow a similar channel naming convention

Development Install

Below is an short overview of getting up and running quickly. Please see the contributing guide for full details.

Development Requirements

Recommended a Python virtual environment provided by a tool of choice, e.g. one of:

  • virtualenv
  • mamba
  • conda

Ensure the local development environment has:

  • git
  • nodejs 22
  • python >=3.8

Development Quick Start

git clone https://github.com/jupyterlite/pyodide-kernel
cd pyodide-kernel
npm run quickstart

Then, serve the built demo site, documentation, and test reports with Python's built-in HTTP server:

jlpm serve

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyterlite_pyodide_kernel-0.8.0a2.tar.gz (590.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyterlite_pyodide_kernel-0.8.0a2-py3-none-any.whl (610.4 kB view details)

Uploaded Python 3

File details

Details for the file jupyterlite_pyodide_kernel-0.8.0a2.tar.gz.

File metadata

File hashes

Hashes for jupyterlite_pyodide_kernel-0.8.0a2.tar.gz
Algorithm Hash digest
SHA256 8b12851a129d65c9ce7f8c70510ef2bfcdaeae22242109ba455536cd735bf6e3
MD5 3865418f4af7b1091125f48fffdc7b95
BLAKE2b-256 1f90d0d41aa3bd72ad5c1d082a02ab2cd131b1abc12578034f244184689cd1e9

See more details on using hashes here.

File details

Details for the file jupyterlite_pyodide_kernel-0.8.0a2-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlite_pyodide_kernel-0.8.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 41aded6880a6db9690f4b445ac9e5f7255141a16b74ac487db8dd2d22e0d3ef9
MD5 53ba922c36a8efe19ab0c4daf9a9f25e
BLAKE2b-256 af0013afc93839edc5c84990b85e7224654ac0ef9a5b8de44430bc162be76db5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page