Hey folks,
A quick post to make one of the features from the latest releases jupyter_core more visible, which might be useful to users juggling between multiple virtual environments on a day to day basis.
The jupyter --paths command tells where Jupyter looks for config and data files. It usually outputs something like the following:
$ jupyter --paths
config:
/home/user/.jupyter
/home/user/miniforge3/envs/myenvironment/etc/jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/user/.local/share/jupyter
/home/user/miniforge3/envs/myenvironment/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/home/user/.local/share/jupyter/runtime
Here we see that the first entry on the list for the config files is /home/user/.jupyter. Which means that all virtual environment will be sharing that same folder to store config files, for example JupyterLab settings and workspaces.
With recent releases of jupyter_core, it is now possible to set the JUPYTER_PREFER_ENV_PATH environment variable to change this order so the path to the virtual environment shows up first.
First make sure to have jupyter_core>=4.7. For example to upgrade with pip:
pip install -U jupyter_core
The JUPYTER_PREFER_ENV_PATH environment variable can for example be set in the ~/.bashrc or ~/.zshrc files, so it is set automatically when a new terminal is started:
export JUPYTER_PREFER_ENV_PATH=1
Then in a new terminal, running the jupyter --paths command will output:
$ jupyter --paths
config:
/home/user/miniforge3/envs/myenvironment/etc/jupyter
/home/user/.jupyter
/usr/local/etc/jupyter
/etc/jupyter
data:
/home/user/miniforge3/envs/myenvironment/share/jupyter
/home/user/.local/share/jupyter
/usr/local/share/jupyter
/usr/share/jupyter
runtime:
/home/user/.local/share/jupyter/runtime
This can be quite handy to keep environments well isolated.
Thanks @jasongrout for adding this in Add an environment variable flag to switch the user and environment path order by jasongrout · Pull Request #199 · jupyter/jupyter_core · GitHub!
More info in the documentation: Paths for Jupyter files — jupyter_core 4.8.0.dev0 documentation
Hope it helps!