bash - ¿Cómo puedo evitar que Conda active el entorno base de forma predeterminada?
anaconda (3)
Recientemente instalé anaconda2 en mi Mac. De forma predeterminada, Conda está configurado para activar el entorno base cuando abro una nueva sesión de terminal.
Quiero acceder a los comandos de Conda (es decir, quiero que la ruta a Conda se agregue a mi $ PATH, lo que Conda hace cuando se inicializa, así que está bien).
Pero normalmente no programo en Python, y no quiero que Conda active un entorno de forma predeterminada.
Al ejecutar por primera vez
conda init
desde el indicador, Conda agrega lo siguiente a mi
.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 comento todo el bloque, no puedo activar ningún entorno Conda.
Traté de comentar todo el bloque a excepción de
export PATH="/Users/geoff/anaconda2/bin:$PATH"
Pero luego, cuando inicié una nueva sesión e intenté activar un entorno, recibí este mensaje de error:
CommandNotFoundError: Your shell has not been properly configured to use ''conda activate''.
Esta pregunta (y otras similares) son útiles, pero en última instancia no responde mi pregunta y es más adecuada para los usuarios de Linux.
Para aclarar, no estoy pidiendo que elimine
(base)
de mi
$PS1
.
$PS1
que Conda no active la base cuando abro una sesión de terminal.
Así que al final descubrí que si comentaba el bloque de inicialización de Conda así:
# >>> 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 <<<
Funciona exactamente como yo quiero. Es decir, Conda está disponible para activar un entorno si lo deseo, pero no se activa de forma predeterminada.
La respuesta depende un poco de la versión de
conda
que haya instalado.
Para versiones de conda> = 4.4, debería ser suficiente
deactivate
el entorno conda después de la inicialización, así que agregue
conda deactivate
justo debajo
# <<< conda initialize <<<
Tengo Conda 4.6 con un bloque de código similar que fue agregado por Conda. En mi caso, hay una configuración de configuración de Conda para deshabilitar la activación de base automática:
conda config --set auto_activate_base false
La primera vez que lo ejecute, creará un
./condarc
en su directorio de inicio con esa configuración para anular el valor predeterminado.
Esto no desordenará su
.bash_profile
pero es una solución más limpia sin la edición manual de esa sección que maneja conda.