Jupyterlab
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
.
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
$HOME/.condarc
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.
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}"