personal_site/_posts/2023-06-20-conda_setup.md
2023-10-13 15:50:00 +02:00

58 lines
1.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Jupyter and Conda setup
date: 2023-06-20
layout: post
image: /assets/blog/mamba/logos.png
social_image: /assets/social/jupyter.png
alt: The orange, abstract, Jupyter logo and the Mamba logo which is a cute black snake.
---
These are my notes to myself about how to setup jupyter+conda/mamba environments.
### Use micromamba instead of conda
Mamba is hugely faster than conda. Use minimamba installed with brew.
Put this in the `~/.condarc` (which mamba obeys too):
```yaml
channel_priority: strict
channels:
- conda-forge
```
### Useful commands I always forget
Note I've added `-y` to these commands to skip the confirmation dialog.
Create env on command line: `mamba create -c conda-forge -n envname python=3.11 other_package ...`
Create env from file: `mamba env create -y -f file.yaml`
Remove env by name: `mamba env remove -y -n envname`
Export only manually installed packages to file: `mamba env export --from-history`
### Jupyter environmnet
Create a `jupyter_env.yaml` file (so that you can tear it down and rebuild it when everything explodes). Install that.
```yaml
name: jupyter
channels:
- conda-forge
dependencies:
- python=3.11
- jupyterlab
- nb_conda_kernels # This makes conda envs visible to jupyterlab
- jupyterlab_widgets # Makes ipywidgets work in jupyterlab
```
Notes:
(making mamba kernels visible)[https://github.com/Anaconda-Platform/nb_conda_kernels]
(making ipywidgets work)[https://ipywidgets.readthedocs.io/en/latest/user_install.html#installing-the-jupyterlab-extension]
Can get a env yaml with `conda env export --from-history`
#### Child environments
To make other environments visible to the jupyter lab instance and make ipqidgets work (i.e for tqdm progress bars) you need two extra packags:
```yaml
name: child
channels:
- conda-forge
dependencies:
- python=3.11
- ipywidgets # The child to jupyterlab_widgets
- ipykernel # The child to nb_conda_kernels
```