Skip to main content

Python Jupyter kernel using pyproject environment manangers like Rye, PDM, Poetry, Hatch etc.

Project description

PyPI - Python Version

Pyproject Local Jupyter Kernel

  • Use per-directory python projects to run Python Jupyter kernels
  • Separate dependencies for notebooks in separate projects
  • Use Rye, PDM, Poetry, Hatch, or similar project setups to define and run IPython kernels with dependencies for Jupyter notebooks.

Instead of installing a myriad of jupyter kernelspecs, one per project, instead have one "meta" kernel that enables the environment for the project the notebook file resides in. This approach should be more portable (usable to anyone who checks out your project structure from git) and easier to use.

Supports the following, reads pyproject.toml to figure out which kind of project it is:

  • Rye
  • Poetry
  • Hatch
  • Pdm
  • Custom configuration (for other setups)

Quick Start

  1. Install pyproject-local-kernel in your jupyterlab environment and restart jupyterlab

  2. Create a new directory and notebook, select the Pyproject Local kernel for the notebook

  3. Run (Example for Rye)

    • !rye init --virtual
    • !rye add --sync ipykernel
  4. Restart the kernel and you are good to go. Use !rye add to add further dependencies.

  • See the examples directory for how to setup jupyterlab and notebook projects separately. JupyterLab and the notebook are installed in separate environments.

Project Status

Status: Proof of Concept

User Experience

If the Pyproject Local kernel is used in a project where rye (or the relevant pyproject manager) is not installed, or the rye project does not have an ipykernel, then starting the kernel fails.

It starts a "fallback" kernel which that shows a message that rye is not setup as expected in this environment, and provide a regular ipython kernel which lets you run shell commands to the project.

Example here is currently for Rye.

! Failed to start kernel! The detected project type is: Rye
! Is the virtual environment created, and does it have ipykernel in the project?
!
! Run this:
! !rye add --sync ipykernel
!
! Then restart the kernel to try again.

Project details


Download files

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

Source Distribution

pyproject_local_kernel-0.5.2.tar.gz (6.9 kB view hashes)

Uploaded Source

Built Distribution

pyproject_local_kernel-0.5.2-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

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