mirror of
https://github.com/TomHodson/tomhodson.github.com.git
synced 2025-06-26 10:01:18 +02:00
70 lines
2.4 KiB
Markdown
70 lines
2.4 KiB
Markdown
---
|
|
title: My Jupyter and Conda setup
|
|
date: 2022-02-02
|
|
layout: post
|
|
image:
|
|
---
|
|
|
|
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. |