bluss / ryeish-kernel

Python Jupyter kernel using Rye for reproducible notebooks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Name has Changed

New Name is Pyproject Local Kernel

This project has moved! Update your dependencies and notebooks to use the new name which will be stable. Also coming to PyPI using that name.

Rye(ish) Jupyter Kernel

  • Use per-directory Rye projects to run Python Jupyter kernels - separate dependencies for every notebook, as needed!

The intention is that 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.

Quick Start

  1. Install ryeish-kernel in your jupyterlab environment and restart jupyterlab

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

  3. Run

    • !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

The name is currently Rye(ish) because it is not officially connected with Rye.

User Experience

If the Rye kernel is used in a project where rye 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 fix rye!

! Failed to start Rye environment kernel - no ipykernel in rye project?
! Run this:
! !rye add --sync ipykernel
! 
! Then restart the kernel to try again.

About

Python Jupyter kernel using Rye for reproducible notebooks

License:MIT License


Languages

Language:Python 97.2%Language:Shell 2.8%