calcoloscientifico:cluster:softwareapplicativo:conda_user
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| calcoloscientifico:cluster:softwareapplicativo:conda_user [18/03/2021 11:43] – [Working with conda] fabio.spataro | calcoloscientifico:cluster:softwareapplicativo:conda_user [25/02/2026 15:08] (versione attuale) – fabio.spataro | ||
|---|---|---|---|
| Linea 18: | Linea 18: | ||
| CONDAENV_NAME=' | CONDAENV_NAME=' | ||
| CONDAENV_VERSION=$(date ' | CONDAENV_VERSION=$(date ' | ||
| - | PYTHON_VERSION=' | + | PYTHON_VERSION=' |
| CONDAENV=" | CONDAENV=" | ||
| Linea 38: | Linea 38: | ||
| CONDAENV_PREFIX=" | CONDAENV_PREFIX=" | ||
| CONDAENV_SYMLNK=" | CONDAENV_SYMLNK=" | ||
| + | fi | ||
| + | |||
| + | if [ $UID = 0 ]; then | ||
| + | conda --version | ||
| + | conda update conda | ||
| + | conda --version | ||
| + | echo | ||
| fi | fi | ||
| Linea 43: | Linea 50: | ||
| echo " | echo " | ||
| echo | echo | ||
| - | echo -n " | + | |
| + | if [ -d " | ||
| + | echo -n " | ||
| + | |||
| + | read ans | ||
| + | |||
| + | case " | ||
| + | [yY]|[yY][Ee][Ss]) | ||
| + | conda env remove --name " | ||
| + | ;; | ||
| + | [nN]|[nN][oO]) | ||
| + | ;; | ||
| + | *) | ||
| + | echo | ||
| + | exec " | ||
| + | exit | ||
| + | ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | if [ -d " | ||
| + | echo -n " | ||
| + | else | ||
| + | | ||
| + | fi | ||
| read ans | read ans | ||
| Linea 62: | Linea 93: | ||
| conda info | conda info | ||
| - | if [ $UID = 0 ]; then | + | if [ ! -d "$CONDAENV_PREFIX" |
| - | conda --version | + | conda create |
| - | conda update conda | + | |
| - | conda --version | + | |
| fi | fi | ||
| - | |||
| - | if [ -d " | ||
| - | conda env remove --name " | ||
| - | fi | ||
| - | |||
| - | conda create --yes --name " | ||
| conda activate " | conda activate " | ||
| conda install --yes --name " | conda install --yes --name " | ||
| - | --channel conda-forge \ | + | |
| - | 7zip | + | xz |
| conda list || true | conda list || true | ||
| Linea 100: | Linea 123: | ||
| It is also possible to install python packages using the " | It is also possible to install python packages using the " | ||
| + | ==== Example with conda and pip ==== | ||
| + | |||
| + | General template that can be used to create personal or group environments: | ||
| + | |||
| + | <code bash hpc-make-condaenv-networkx> | ||
| + | #!/bin/bash | ||
| + | |||
| + | set -e | ||
| + | |||
| + | PYTHON_VERSION=' | ||
| + | CONDAENV_NAME=' | ||
| + | CONDAENV_RELEASE=' | ||
| + | CONDAENV_DEFAULT=' | ||
| + | NETWORKX_VERSION=' | ||
| + | |||
| + | help() { | ||
| + | cat <<EOF | ||
| + | Synopsis: | ||
| + | $(basename $0) [--dry-run] | ||
| + | $(basename $0) [--pip-dry-run] | ||
| + | $(basename $0) --help | ||
| + | |||
| + | Usage: | ||
| + | $(basename $0) | ||
| + | $(basename $0) --dry-run | ||
| + | $(basename $0) --pip-dry-run | ||
| + | |||
| + | Example: | ||
| + | $(basename $0) | ||
| + | $(basename $0) --dry-run | ||
| + | $(basename $0) --pip-dry-run | ||
| + | |||
| + | Options: | ||
| + | -d, --dry-run | ||
| + | --pip-dry-run | ||
| + | -h, --help | ||
| + | EOF | ||
| + | } | ||
| + | |||
| + | die() { | ||
| + | if [ $# -ge 1 ]; then | ||
| + | echo " | ||
| + | fi | ||
| + | exit 1 | ||
| + | } | ||
| + | |||
| + | # Command line options | ||
| + | opt=$(getopt \ | ||
| + | --options hd \ | ||
| + | --longoptions help, | ||
| + | --name $(basename $0) \ | ||
| + | -- \ | ||
| + | " | ||
| + | |||
| + | retval=$? | ||
| + | |||
| + | if [ $retval -ne 0 ]; then | ||
| + | exit $retval | ||
| + | fi | ||
| + | |||
| + | eval set -- " | ||
| + | |||
| + | while true; do | ||
| + | case " | ||
| + | -h|--help) | ||
| + | shift | ||
| + | help | ||
| + | exit;; | ||
| + | |||
| + | -d|--dry-run) | ||
| + | shift | ||
| + | opt_dry_run=true;; | ||
| + | |||
| + | --pip-dry-run) | ||
| + | shift | ||
| + | opt_pip_dry_run=true;; | ||
| + | |||
| + | --) | ||
| + | shift | ||
| + | break;; | ||
| + | |||
| + | *) | ||
| + | die ' | ||
| + | exit 1;; | ||
| + | esac | ||
| + | done | ||
| + | |||
| + | # CONDA dry run | ||
| + | if [ -n " | ||
| + | unset PYTHON_VERSION | ||
| + | fi | ||
| + | |||
| + | # PIP dry run | ||
| + | if [ -n " | ||
| + | unset NETWORKX_VERSION | ||
| + | fi | ||
| + | |||
| + | # CONDA environment name | ||
| + | if [ -n " | ||
| + | CONDAENV_VERSION=" | ||
| + | else | ||
| + | if [ -n " | ||
| + | PY=${PYTHON_VERSION: | ||
| + | fi | ||
| + | CONDAENV_VERSION=${PY: | ||
| + | fi | ||
| + | if [ -n " | ||
| + | CONDAENV_VERSION=" | ||
| + | fi | ||
| + | CONDAENV=" | ||
| + | |||
| + | module load miniconda3 | ||
| + | |||
| + | source " | ||
| + | |||
| + | if [ $UID = 0 ]; then | ||
| + | CONDAENV_PREFIX="/ | ||
| + | CONDAENV_SYMLNK="/ | ||
| + | else | ||
| + | if [ -z " | ||
| + | echo ' | ||
| + | exit 1 | ||
| + | fi | ||
| + | if [ -z " | ||
| + | echo ' | ||
| + | exit 1 | ||
| + | fi | ||
| + | echo " | ||
| + | echo " | ||
| + | CONDAENV_PREFIX=" | ||
| + | CONDAENV_SYMLNK=" | ||
| + | fi | ||
| + | |||
| + | echo " | ||
| + | if echo " | ||
| + | echo " | ||
| + | fi | ||
| + | echo | ||
| + | |||
| + | if [ -z " | ||
| + | if [ -d " | ||
| + | echo -n " | ||
| + | |||
| + | read ans | ||
| + | |||
| + | case " | ||
| + | [yY]|[yY][Ee][Ss]) | ||
| + | conda env remove --name " | ||
| + | ;; | ||
| + | [nN]|[nN][oO]) | ||
| + | ;; | ||
| + | *) | ||
| + | echo | ||
| + | exec " | ||
| + | exit | ||
| + | ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | if [ -d " | ||
| + | echo -n " | ||
| + | else | ||
| + | echo -n " | ||
| + | fi | ||
| + | |||
| + | read ans | ||
| + | |||
| + | case " | ||
| + | [yY]|[yY][Ee][Ss]) | ||
| + | ;; | ||
| + | [nN]|[nN][oO]) | ||
| + | exit 1 | ||
| + | ;; | ||
| + | *) | ||
| + | echo | ||
| + | exec " | ||
| + | exit | ||
| + | ;; | ||
| + | esac | ||
| + | fi | ||
| + | |||
| + | conda info | ||
| + | |||
| + | if [ ! -d " | ||
| + | # CONDA create | ||
| + | conda create \ | ||
| + | --yes \ | ||
| + | ${opt_dry_run: | ||
| + | --prefix " | ||
| + | --override-channels \ | ||
| + | --channel conda-forge \ | ||
| + | python${PYTHON_VERSION: | ||
| + | pip \ | ||
| + | matplotlib | ||
| + | fi | ||
| + | |||
| + | if [ -n " | ||
| + | conda deactivate | ||
| + | exit | ||
| + | fi | ||
| + | |||
| + | CONDADEF_PIP=" | ||
| + | |||
| + | conda activate " | ||
| + | |||
| + | CONDAENV_PIP=" | ||
| + | |||
| + | # PIP check | ||
| + | if [ " | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # PIP install or upgrade pip | ||
| + | pip install --upgrade ${opt_pip_dry_run: | ||
| + | |||
| + | # PIP install or upgrade | ||
| + | pip install --upgrade ${opt_pip_dry_run: | ||
| + | networkx${NETWORKX_VERSION: | ||
| + | |||
| + | conda list || true | ||
| + | |||
| + | conda deactivate | ||
| + | |||
| + | # PIP dry run | ||
| + | if [ -n " | ||
| + | exit | ||
| + | fi | ||
| + | |||
| + | # CONDA environment symbolic link | ||
| + | if echo " | ||
| + | rm -f " | ||
| + | ln -s " | ||
| + | symlinks -cs $(dirname " | ||
| + | ls -lard " | ||
| + | fi | ||
| + | </ | ||
| + | |||
| + | This script is located in | ||
| + | |||
| + | < | ||
| + | / | ||
| + | </ | ||
| ==== Creating a user environment ==== | ==== Creating a user environment ==== | ||
| Linea 116: | Linea 382: | ||
| ==== Working with conda ==== | ==== 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 === | === Interactive work session === | ||
| + | |||
| + | If you want to work at group level change group otherwise skip this step: | ||
| < | < | ||
| - | [< | + | newgrp < |
| + | </ | ||
| + | |||
| + | Typical work session with conda (CPU): | ||
| + | |||
| + | < | ||
| + | [< | ||
| + | |||
| + | [< | ||
| - | [< | + | [< |
| - | [< | + | [< |
| - | [< | + | [< |
| - | conda 4.9.2 | + | conda 25.7.0 |
| - | [< | + | [< |
| - | [< | + | [< |
| - | (base) [< | + | (base) [< |
| / | / | ||
| - | (base) [< | + | (base) [< |
| - | Python 3.7.4 | + | Python 3.9.18 |
| - | (base) [< | + | (base) [< |
| + | (base) [< | ||
| + | |||
| + | (my_conda_env) [< | ||
| + | (my_conda_env) [< | ||
| + | |||
| + | (base) [< | ||
| + | |||
| + | [< | ||
| + | |||
| + | [< | ||
| + | </ | ||
| + | |||
| + | Typical work session with conda (GPU): | ||
| + | |||
| + | < | ||
| + | [< | ||
| + | |||
| + | [< | ||
| + | |||
| + | [...] | ||
| + | |||
| + | [< | ||
| [< | [< | ||
| Linea 152: | Linea 452: | ||
| === Alternate channels === | === Alternate channels === | ||
| - | To search for alternate channels that may provide the conda package you're looking for, navigate to [[https:// | + | 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: | To add a new channel: | ||
| Linea 167: | Linea 467: | ||
| conda clean --all | conda clean --all | ||
| </ | </ | ||
| - | |||
| - | === Environment === | ||
| - | |||
| - | With conda, you can create, export, list, remove, and update [[https:// | ||
| === Environments list === | === Environments list === | ||
calcoloscientifico/cluster/softwareapplicativo/conda_user.1616064188.txt.gz · Ultima modifica: da fabio.spataro
