For data scientists, it is a must to prototype in multiple virtual environments which isolate different (and often very divergent) sets of Python packages. This can be achieved by linking one Jupyter installation with multiple Python environments.
Use the command <code>which jupyter</code> to show the Jupyter location and <jupyter kernelspec list> to show available kernels, as shown below:
ubuntu@ip-172-31-36-77:~/projects/eye-processing$ which jupyter
/usr/local/bin/jupyter
ubuntu@ip-172-31-36-77:~/projects/eye-processing$ jupyter kernelspec list
Available kernels:
.eyelinkparser /home/ubuntu/.local/share/jupyter/kernels/.eyelinkparser
eye-processing /home/ubuntu/.local/share/jupyter/kernels/eye-processing
pypupilenv /home/ubuntu/.local/share/jupyter/kernels/pypupilenv
python3 /usr/local/share/jupyter/kernels/python3
To make an environment a Jupyter kernel, first activate it and install ipykernel inside.
ubuntu@ip-172-31-36-77:~/projects/eye-processing$ source .venv/bin/activate
(.venv) ubuntu@ip-172-31-36-77:~/projects/eye-processing$ pip install ipykernel
Collecting ipykernel
...
Successfully installed...
Then use ipykernel to register the active environment as a jupyter kernel (choose a name and the destination, e.g. user space; consult python -m ipykernel install –help for more options).
(.venv) ubuntu@ip-172-31-36-77:~/projects/eye-processing$ python -m ipykernel install --name eye-processing --user
Installed kernelspec eye-processing in /home/ubuntu/.local/share/jupyter/kernels/eye-processing
The kernel should appear in the jupyter kernel lists. Notebooks may need restarting to notice it.
Open kernel.json file under kernel’s path to inspect config details:
{
"argv": [
"/home/ubuntu/projects/eye-processing/.venv/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "eye-processing",
"language": "python",
"metadata": {
"debugger": true
}
}
"~/.local/share/jupyter/kernels/eye-processing/kernel.json" [noeol] 14L, 234B