From CT Wiki
Jump to navigation Jump to search

Jupyterlab is a popular interactive Python notebook manager. This service runs on a Stoomboot node with 64 cores and 512 GB memory.

Accessing the service

Jupyterhub is available exclusively for Nikhef users. You have to be on the Nikhef network or use EduVPN to access the service.

To use it go to https://callysto.nikhef.nl/ and log on via Nikhef SSO. The notebook will run under your Nikhef account with full access to your home directory, project and data shares, and dCache.

Setting up new environments

It is possible to set up additional kernels and environments with different Python versions or software suites.

The command-line examples below can be used in Jupyterlab by starting a terminal from the launcher.

Using conda
source /opt/tljh/user/etc/profile.d/conda.sh
conda create --name python38 python=3.8
conda activate python38
conda install ipykernel
python -m ipykernel install --user --name python38 --display-name 'Python 3.8'

This creates a new conda environment in the directory $HOME/.conda/envs/python38 and installs the jupyter kernel in $HOME/.local/share/jupyter/kernels/python38.

Using conda in e.g. a shared project directory (work in progress)

Add the new conda environments dir to your conda config, for example:

source /opt/tljh/user/etc/profile.d/conda.sh
conda config --append envs_dirs /project/myfirstproject/conda/envs

Check via

conda config --get envs_dirs

or the contents of


To create a new conda environment there, you need to specify the whole path:

source /opt/tljh/user/etc/profile.d/conda.sh
conda create --prefix /project/myfirstproject/conda/envs/shared_python38 python=3.8
conda activate shared_python38
conda install ipykernel
python -m ipykernel install --user --name shared_python38 --display-name 'Python 3.8 (shared)'

Note that the name given to the kernel can be (but doesn't have to be) different from the name of the conda environment.

Conda ROOT shared environment and kernel

Some environments require the setting of environment variables like PATH. A popular example is ROOT.

Setting up a ROOT environment requires the conda-forge channel. See the documentation at CERN about how to set it up.

source /opt/tljh/user/etc/profile.d/conda.sh
conda config --set channel_priority strict
conda create -c conda-forge --prefix /project/<my-project>/.../sharedrootenv root

After activating the environment in the terminal, create a new kernel

python -m ipykernel install --user --name shared_root --display-name 'ROOT (shared)' --env PATH $PATH

The PATH setting is important because ROOT needs to find its binaries when the kernel is loaded.

The new ROOT kernel should show up in the Jupyterlab launcher.

Using python venv
python -m venv testing123
source testing123/bin/activate
pip install ipykernel
python -m ipykernel install --user --name testing123 --display-name 'Testing 1,2,3'

This creates a new python venv in $PWD/testing123 and installs the jupyter kernel in $HOME/.local/share/jupyter/kernels/testing123.

List/remove/etc the kernel

jupyter-kernelspec help
jupyter-kernelspec list
jupyter-kernelspec remove testing123

Removing environments

  • conda based:
conda env list
conda env remove -n python38
  • python venv based: remove the previously created testing123 python environment directory and its contents.
"rm -rf ${path_to_testing123}"