J'ai récemment installé anaconda2 sur mon Mac. Par défaut, Conda est configuré pour activer l'environnement de base lorsque j'ouvre une nouvelle session de terminal.
Je veux accéder aux commandes Conda (c'est-à-dire que je veux que le chemin vers Conda soit ajouté à mon $ PATH, ce que Conda fait lors de l'initialisation, donc ça va).
Mais je ne programme pas d'habitude en python, et je ne veux pas que Conda active un environnement par défaut.
Lors de la première exécution de conda init
de l'invite, Conda ajoute ce qui suit à mon .bash_profile
:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/geoff/anaconda2/bin/conda' 'Shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
. "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
else
export PATH="/Users/geoff/anaconda2/bin:$PATH"
fi
# fi
unset __conda_setup
# <<< conda initialize <<<
Si je commente tout le bloc, je ne peux activer aucun environnement Conda.
J'ai essayé de commenter tout le bloc à l'exception de
export PATH="/Users/geoff/anaconda2/bin:$PATH"
Mais quand j'ai commencé une nouvelle session et essayé d'activer un environnement, j'ai reçu ce message d'erreur:
CommandNotFoundError: Your Shell has not been properly configured to use 'conda activate'.
Cette question (et d'autres comme ça) sont utiles, mais ne répondent finalement pas à ma question et conviennent mieux aux utilisateurs de Linux.
Pour plus de précision, je ne demande pas de supprimer le (base)
de mon $PS1
Je demande à Conda de ne pas activer la base lorsque j'ouvre une session de terminal.
J'ai conda 4.6 avec un bloc de code similaire qui a été ajouté par conda. Dans mon cas, il y a un paramètre de configuration conda pour désactiver l'activation automatique de la base:
conda config --set auto_activate_base false
La première fois que vous l'exécuterez, il créera un ./condarc
dans votre répertoire personnel avec ce paramètre pour remplacer la valeur par défaut.
Cela n'encombrerait pas votre .bash_profile
mais c'est une solution plus propre sans modification manuelle de la section gérée par conda.
La réponse dépend un peu de la version de conda
que vous avez installée. Pour les versions de conda> = 4.4, il devrait suffire de deactivate
l'environnement conda après l'initialisation, donc ajoutez
conda deactivate
juste en dessous
# <<< conda initialize <<<
Donc à la fin, j'ai trouvé que si je commentais le bloc d'initialisation Conda comme ceci:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
# __conda_setup="$('/Users/geoff/anaconda2/bin/conda' 'Shell.bash' 'hook' 2> /dev/null)"
# if [ $? -eq 0 ]; then
# eval "$__conda_setup"
# else
if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
. "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
else
export PATH="/Users/geoff/anaconda2/bin:$PATH"
fi
# fi
# unset __conda_setup
# <<< conda initialize <<<
Cela fonctionne exactement comme je veux. Autrement dit, Conda est disponible pour activer un environnement si je le souhaite, mais ne s'active pas par défaut.
Il existe 3 façons d'y parvenir après conda
4.6. (La dernière méthode a la priorité la plus élevée.)
Utilisez la sous-commande conda config
Pour modifier le paramètre.
conda config --set auto_activate_base false
En fait, l'ancienne sous-commande conda config
Change le fichier de configuration .condarc
. Nous pouvons modifier .condarc
Directement. Ajoutez le contenu suivant dans .condarc
Sous votre répertoire personnel,
# auto_activate_base (bool)
# Automatically activate the base environment during Shell
# initialization. for `conda init`
auto_activate_base: false
Définissez la variable d'environnement CONDA_AUTO_ACTIVATE_BASE
Dans le fichier init du Shell. (.bashrc
Pour bash, .zshrc
Pour zsh)
CONDA_AUTO_ACTIVATE_BASE=false
Pour convertir le nom de paramètre de configuration basé sur un fichier
condarc
en nom de paramètre de variable d'environnement, mettez tout le nom en majuscule et préfixeCONDA_
. Par exemple, le paramètre de configurationalways_yes
De conda peut être spécifié à l'aide d'une variable d'environnementCONDA_ALWAYS_YES
.
Les paramètres d'environnement ont priorité sur les paramètres correspondants du fichier .condarc
.
Pour désactiver l'activation automatique de l'environnement conda base dans le terminal:
conda config --set auto_activate_base false
Pour activer l'environnement conda base:
conda activate
Si vous voulez garder votre bashrc simple, vous pouvez supprimer tous les conda init
a généré de l'encombrement et ne conserve qu'une seule ligne:
. "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
Voir Modification recommandée pour activer la conda dans votre shell .
Cela rendra la commande conda disponible sans activer l'environnement de base.
Si vous souhaitez utiliser votre bashrc sur d'autres systèmes où conda n'est pas installé sur le même chemin, vous pouvez également conserver les lignes if
/fi
pour éviter les messages d'erreur, à savoir:
if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
. "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
fi