My Jupyter and Conda Mamba setup
I really like working in Jupyterlab but getting it to work nicely is always a bit challenging, these are my notes for roughly how I have it set up.
Conda
I use miniconda3 with the package directory set up to point to somewhere other than the home directory because the university system I’m working on only gives a small amount of space in your home directory.
My ~/.condarc contains:
channel_priority: strict channels: - conda-forge - defaults
channel_priority: strict is supposed to speed up conda complicated dependency resolution system, and I heard on the grapevine that conda-forge packages tend to be more up to date than the ones in default so I’ve switched the priority.
I then have a “base” environment where I’ve install jupyterlab,
Hint: you can use conda env export --from-history
to see the packages you actually installed into a conda environment rather than the ones that were installed as dependencies, I wish there were a shorter form for this command because I think it’s really useful.
Base env
$(base) conda env export –from-history name: base channels:
- conda-forge
- defaults dependencies:
- python=3.8
- jupyterlab
- jupyterlab-git
- nb_conda_kernels
jupyterlab is the package that runs the show, we also have jupyterlab-git which is a git plugin for it and nb_conda_kernels which allows jupyter in the base env to see the other environments on the system.
other envs
Now I have project specific envs where I actually run python code. Here’s an example one:
name: fk channels:
- conda-forge
- defaults dependencies:
- python=3.8
- scipy
- numpy
- matplotlib
- munch prefix: /home/tch14/miniconda3/envs/fk
Remote Acess
I often use my laptop to access a Jupyterlab server running on a beefier machine under my desk at work, the ~/.shh/config on my laptop contains
host beefyremote user [username] hostname [hostname] proxyJump [a machine that you need to jump through if necessary] IdentityFile ~/.ssh/id_rsa_password_protected #give access to the jupyter server on [beefyremote]:8888 to localhost:8889 LocalForward 8889 localhost:8888 #LocalCommand
I open this connection and then run jupyter lab --no-browser --port=8888
within a tmux session on the remote machine so that the server doesn’t die with the connection.