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!