===== CONDA user defined environments =====
Users or groups can build their own environments.
==== General template ====
General template that can be used to create personal or group environments:
#!/bin/bash
set -e
module load miniconda3
source "$CONDA_PREFIX/etc/profile.d/conda.sh"
CONDAENV_NAME='template'
CONDAENV_VERSION=$(date '+%Y.%m.%d')
PYTHON_VERSION='3.9'
CONDAENV="${CONDAENV_NAME}-${CONDAENV_VERSION}"
if [ $UID = 0 ]; then
CONDAENV_PREFIX="/hpc/share/tools/miniconda3/envs/$CONDAENV"
CONDAENV_SYMLNK="/hpc/share/tools/miniconda3/envs/$CONDAENV_NAME"
else
if [ -z "$CONDA_ENVS_PATH" ]; then
echo 'Error: the CONDA_ENVS_PATH envarionment variable is not set' 1>&2
exit 1
fi
if [ -z "$CONDA_PKGS_DIRS" ]; then
echo 'Error: the CONDA_PKGS_DIRS envarionment variable is not set' 1>&2
exit 1
fi
echo "CONDA_ENVS_PATH: $CONDA_ENVS_PATH"
echo "CONDA_PKGS_DIRS: $CONDA_PKGS_DIRS"
CONDAENV_PREFIX="$CONDA_ENVS_PATH/$CONDAENV"
CONDAENV_SYMLNK="$CONDA_ENVS_PATH/$CONDAENV_NAME"
fi
if [ $UID = 0 ]; then
conda --version
conda update conda
conda --version
echo
fi
echo "CONDAENV_PREFIX: $CONDAENV_PREFIX"
echo "CONDAENV_SYMLNK: $CONDAENV_SYMLNK"
echo
if [ -d "$CONDAENV_PREFIX" ]; then
echo -n "Should we remove the already existing condaenv '$CONDAENV_NAME' (yes/no)? "
read ans
case "$ans" in
[yY]|[yY][Ee][Ss])
conda env remove --name "$CONDAENV"
;;
[nN]|[nN][oO])
;;
*)
echo
exec "$0"
exit
;;
esac
fi
if [ -d "$CONDAENV_PREFIX" ]; then
echo -n "Should we proceed with the modification of the condaenv '$CONDAENV_NAME' (yes/no)? "
else
echo -n "Should we proceed with the creation of the condaenv '$CONDAENV_NAME' (yes/no)? "
fi
read ans
case "$ans" in
[yY]|[yY][Ee][Ss])
;;
[nN]|[nN][oO])
exit 1
;;
*)
echo
exec "$0"
exit
;;
esac
conda info
if [ ! -d "$CONDAENV_PREFIX" ]; then
conda create --yes --prefix "$CONDAENV_PREFIX" python${PYTHON_VERSION:+=$PYTHON_VERSION}
fi
conda activate "$CONDAENV"
conda install --yes --name "$CONDAENV" \
--channel conda-forge \
xz
conda list || true
conda deactivate
ln -sf "$CONDAENV_PREFIX" "$CONDAENV_SYMLNK"
ls -la "$CONDAENV_SYMLNK"*
This script is located in
/hpc/share/tools/conda/bin/hpc-make-condaenv-template
Customize your script by editing CONDAENV_NAME, PYTHON_VERSION and the "conda install" command.
The "conda install" command can be repeated multiple times with different options and parameters.
It is also possible to install python packages using the "pip" command.
==== Creating a user environment ====
Create a script from the template and run it.
==== Creating a group environment ====
Change group:
newgrp
Create a script from the template and run it.
==== Working with conda ====
With conda, you can create, export, list, remove, and update that have different versions of Python and/or packages installed in them. Switching or moving between environments is called activating the environment.
=== Interactive work session ===
If you want to work at group level change group otherwise skip this step:
newgrp
Typical work session with conda:
[@ui01 ~]$ module load miniconda3
[@ui01 ~]$ source "$CONDA_PREFIX/etc/profile.d/conda.sh"
[@ui01 ~]$ conda --help
[@ui01 ~]$ conda --version
conda 4.9.2
[@ui01 ~]$ conda info
[@ui01 ~]$ conda activate
(base) [@ui01 ~]$ which python
/hpc/share/tools/miniconda3/bin/python
(base) [@ui01 ~]$ python -V
Python 3.7.4
(base) [@ui01 ~]$ conda deactivate
[@ui01 ~]$
=== Package search ===
conda search sklearn
=== Alternate channels ===
To search for alternate channels that may provide the conda package you're looking for, navigate to [[https://anaconda.org|anaconda.org]] and use the search bar at the top of the page.
To add a new channel:
conda config --add channels conda-forge
=== Remove unused packages and caches ===
To remove unused packages and caches
conda clean --all
=== Environments list ===
To see a list of all available environments run:
conda env list
==== References ====
[[https://docs.conda.io/projects/conda/en/4.6.1/user-guide/tasks/manage-environments.html|Managing environments]]