bash anaconda conda

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.