# Environment & Packages

Managing software environments and package managers.

# Conda & Mamba Environments

Conda and Mamba let you create isolated software environments with specific package versions. Use Mamba for faster dependency resolution.

## Loading the Module

```bash
module load mamba/mamba-2.1.1
```

## Listing Available Environments

Before creating your own, check if an environment already exists for your needs:

```bash
conda env list
```

## Activating an Existing Environment

```bash
conda activate /path/to/envs/ENVIRONMENT_NAME
```

## Creating Your Own Environment

Create a personal environment in your home directory:

```bash
conda create --prefix ~/envs/my_env
```

Then activate it:

```bash
conda activate ~/envs/my_env
```

## Installing Packages

Before installing, set your cache directories to a writable location:

```bash
export CONDA_PKGS_DIRS=$HOME/.conda/pkgs
export CONDA_ENVS_DIRS=$HOME/.conda/envs
export MAMBA_ROOT_PREFIX=$HOME/.mamba
```

Then install packages:

```bash
conda install <package_name>
# or faster with mamba:
mamba install <package_name>
```

## Using Your Environment in a Job Script

```bash
#!/bin/bash
#SBATCH --job-name=my_job
#SBATCH --account=public-users_v2
#SBATCH --partition=power-general-shared-pool
#SBATCH --qos=public
#SBATCH --time=01:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem-per-cpu=4G
#SBATCH --output=my_job_%j.out

module load mamba/mamba-2.1.1
conda activate ~/envs/my_env

python my_script.py
```

## Deactivating &amp; Unloading

```bash
conda deactivate
module unload mamba/mamba-2.1.1
```