Issue
I use one (project-independent, installed with pipx) jupyter notebook (or lab) installation, and then separate virtual environments for each project (using pipenv).
If I open a notebook in one of the projects, it will run using the system python by default. If I want it to run using the virtual environment's python, I have to install ipykernel
into the venv and the let the global jupyter installation know that it exists by running inside the venv python -m ipykernel install --user --name project-pipenv
. I can then select the correct kernel from inside jupyter.
Now I have 20+ projects, so my list of kernels is rather long. Is it possible to automatically use the correct kernel?
Solution
Rather than using one kernel definition by project, we can make the kernel definition pipenv-aware. Create (or edit/copy an existing kernel definition) at ~/.local/share/jupyter/kernels/pipenv/kernel.json
:
{
"argv": [
"pipenv",
"run",
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "pipenv",
"language": "python",
"metadata": {
"debugger": true
}
}
Now any notebook that sits in a pipenv project with ipykernel
as a dependency will automatically use that kernel. This should be possible to adapt to poetry or others.
Answered By - Karalga
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.