Adding Anaconda Environment to Jupyter
When using Jupyter, or Jupyterlab, you'll often times want to use different anaconda environments for different projects. Especially when you are working on a personal workstation. Unfortunately, even when installed with anaconda at the root level, jupyter doesn't automatically detect installed anaconda environments.
For example, in a default jupyterhub install you will only have a single kernel installed.
Adding the Kernel
Start be creating a new anaconda environment, or optionally a python virtual environment using one of the several available tools.
At a minimum, the ipykernel
package must be installed.
# create and activate a new anaconda environment
conda create -n newkernel ipykernel
conda activate
Now add the kernel, being sure to add the --user
flag if anaconda is installed
somewhere the user does not have permission to write to. Also, a name for the
kernel should also be provided as the default name may conflict with the default
kernel installed.
python3 -m ipykernel install --user --name newkernel
Now a new kernel should be available without having to restart the jupyter instance.
How does it work?
When a kernel is installed, a json file is installed in the user's home
directory at $HOME/.local/share/jupyter/kernels
. This json file defines where
jupyter will look to start kernel.
{
"argv": [
"/home/akail/.conda/envs/newkernel/bin/python3",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "testing",
"language": "python",
"metadata": {
"debugger": true
}
}