10 votes

conda activate ne fonctionne pas dans un fichier bash

J'essaie d'écrire un script dont le nom est myscrpt.sh Ainsi, lorsque je l'exécute, il crée automatiquement un environnement virtuel et l'active à l'aide de la fonction conda . Ma version de Conda est 4.7.1.

C'est ce que j'ai au début de mon myscrpt.sh :

#!/bin/bash
conda create --name myenv1
conda activate myenv1

La création de l'environnement ne pose pas de problème, mais je reçois l'erreur :

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

Je n'obtiens pas cette erreur si j'exécute conda activate myenv1 directement dans mon terminal.

Jusqu'à présent, j'ai pris plusieurs mesures comme l'utilisation de conda init <SHELL_NAME> ce qui n'a pas aidé du tout. J'ai ensuite ajouté ce qui suit dans mon bashrc

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/<user>/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/<user>/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/<user>/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/<user>/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

qui n'a pas non plus fonctionné. Ensuite et selon ce lien changé le chemin dans la ligne PATH en :

. /opt/conda/etc/profile.d/conda.sh
conda activate base

Celui-ci a été écrit pour Conda 4.4, mais j'espérais qu'il pourrait m'aider.

Puis j'ai essayé conda run au lieu de conda activate mais cela n'a pas aidé non plus.

Vous avez une idée de la façon dont je peux faire fonctionner ce système ?)

UPDATE1 : Maintenant j'utilise source ./myscript.sh et l'activation fonctionne bien, mais il y a des erreurs en conda install .

3voto

Damian Points 31

Soit

  1. Ajouter eval $(conda shell.bash hook) à votre script, ou bien
  2. Appelez votre script avec bash -i pour invoquer votre environnement interactif

3voto

a.t. Points 165

Une autre réponse, donnée dans ce question qui a fonctionné pour moi sur ce message d'erreur était :

source activate base

Un exemple complet pourrait donc être :

#!/bin/bash
conda create --name myenv1
source activate base 
conda activate myenv1

0voto

ucsky Points 439

Sur Ubuntu Focal C'est la seule méthode qui fonctionne pour moi.

En supposant que vos envs sont installées dans ~/miniconda3 répertoire.

source ~/miniconda3/etc/profile.d/conda.sh
conda activate myenv

0voto

Ahmed Awaad Points 11

J'ai eu le même problème mais cela a fonctionné : dans le terminal Tapez :

$ bash
$ conda init
$ cd /path_that_include_env_dir
$ conda activate ./<env_name>

ou

$ conda activate /env_path

"env_path" est le chemin complet de l'environnement comme : /home/usr/env_dir

Pour vérifier la liste des environnements et leurs chemins d'accès

$ conda env list

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X