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.3,<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.0b0.tar.gz (657.0 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.0b0-py3-none-any.whl (675.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for jupyterlite_pyodide_kernel-0.8.0b0.tar.gz
Algorithm Hash digest
SHA256 339d386ee420007d5dbababa2281c6febfed8acf36b8ba75b5f83d5bb0fa6fbf
MD5 caba6d0c32909b115b293d6cb71bb1db
BLAKE2b-256 c3dfdb2e2940b4f43bddc30e86bba540fd4dafb261c096dea3f277261636e4db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jupyterlite_pyodide_kernel-0.8.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 5c72e432287652dde7ba3cc5091f130b3c6534875482de4680787d1c3dba721f
MD5 7ff460aacc7bd8911ee2fc753015a030
BLAKE2b-256 6a9db21fa9866e8b68439bc63844ed84b79375a783db4d925b0557e4b559a23c

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