¿Cómo activo un entorno conda en mi .bashrc?


18

Yo uso Conda para la gestión de paquetes en Python. Tengo un entorno básico que uso casi todo el tiempo, y quiero que se cargue de manera predeterminada cuando abro un terminal. ¿Cómo configuro mi .bashrcpara cargar el entorno?

Hasta ahora, lo intenté source activate myenv, pero entiendo que necesito proporcionar una ruta real dentro del .bashrcarchivo. Entonces lo intenté source ~/anaconda3/envs/myenv/bin/activate. Aunque esto no arroja un error, tampoco activa el entorno. Estoy ejecutando Ubuntu 16.04.

Respuestas:


21

Parece que las respuestas aceptadas pueden estar desactualizadas. De los documentos :

Si su shell es Bash o una variante Bourne, habilite conda para el usuario actual con

$ echo ". /home/<user>/miniconda3/etc/profile.d/conda.sh" >> ~/.bashrc

o, para todos los usuarios, habilite conda con

$ sudo ln -s /home/<user>/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh

Las opciones anteriores habilitarán permanentemente el comando 'conda', pero NO ponen el entorno base (raíz) de conda en PATH. Para hacerlo, corre

$ conda activate

en su terminal, o para poner el entorno base en PATH permanentemente, ejecute

$ echo "conda activate" >> ~/.bashrc

Antes de conda 4.4, la forma recomendada de activar conda era modificar PATH en su archivo ~ / .bashrc. Debería eliminar manualmente la línea que se parece a

export PATH="/home/<user>/miniconda3/bin:$PATH"

^^^ ¡La línea anterior ya NO debería estar en su archivo ~ / .bashrc! ^^^


El método softlink es RAD!
abalter

Si agregar .bashrc no funciona, intente agregarlo en el archivo .profile.
oya163

4

Durante la instalación de Anaconda, debe haber una entrada agregada al archivo .bashrc como este

export PATH="/home/<user>/anaconda3/bin:$PATH"

si no está allí, verifique la instalación ejecutando which conday actualice .bashrc con la ruta hasta bin.

Esto apunta al ejecutable 'conda' y configura la ruta para manejar la activación de conda.

Agregue esta línea después del comando de exportación:

source activate <your_environment>

desde allí puede source ~/.bashrccargar el entorno al shell actual.


1

Para uso bash:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

Eso editará automáticamente tu .bashrc.

Recargar:

$ source ~/.bashrc

Prueba (instalar Spyder):

$ conda install -c anaconda spyder

Ejecute Spyder

$ spyder

1

Corrección correcta

(funciona para versiones> = 4.6)

find . -type f -name 'conda' compruebe dónde está el binario conda y luego cd o simplemente proporcione la ruta completa y ejecute

conda config --set auto_activate_base true

Para desactivar solo haz lo mismo pero con falso. Obviamente:

conda config --set auto_activate_base false

Solución rápida y sucia # 1

Pegue lo siguiente en su .bashrc, reemplácelo con lo obvio y obtenga su .bashrc ( source .bashrc). Debería funcionar para la versión Miniconda3> = 4.6

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

Este es un corte y pegado de mi propio .bashrc, puedes eliminar los comentarios pero los encuentro útiles como delimitadores.

Solución rápida y sucia # 2

Elimine todo con su comando de eliminación favorito ( rm -rf ~/miniconda3), ejecute el script de instalación nuevamente y preste atención a la solicitud, ya que le preguntará si desea iniciarlo automáticamente.

Lo que sea que mece tu bote :)


0

Si desea que un entorno conda se active de manera predeterminada cuando inicia un nuevo terminal bash, puede agregar la siguiente línea a su ~/.bashrcarchivo:

export PATH=<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>:$PATH

Debe reemplazar <PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>en la línea anterior con la ruta completa a su entorno de conda.

En su caso, puede agregar la siguiente línea a su ~/.bashrcarchivo:

export PATH=~/anaconda3/envs/myenv/bin:$PATH

Básicamente, estamos agregando el bindirectorio de su entorno de conda como la primera entrada en su RUTA, que es esencialmente lo que activatehará el script de conveniencia. Después de esto, cuando abra una nueva terminal de bash, el entorno conda se "activará" / "habilitará" de forma predeterminada.

Tenga en cuenta que es posible que no vea el (myenv)prefijo de su solicitud de bash como lo haría si lo hiciera source activate myenv. Si desea que el prefijo de su solicitud aparezca también, agregue la siguiente línea a su ~/.bashrcarchivo:

export PS1="(myenv)"$PS1

¿Dónde (myenv)está cualquier nombre personalizado que pueda dar que se mostrará como el prefijo de la solicitud de bash?


Para mí esto funciona, pero conda info --envsaún muestra el rootentorno como actual. ¿Hay alguna razón por la que no pueda agregar source activate py34(py34 es el nombre de mi entorno) a mi ~ / .bashrc? Parece funcionar, pero ¿hay alguna razón por la que esto no se recomienda?
BStateham

Asegúrese de que la PATHvariable apunte a la bincarpeta debajo de la carpeta del entorno conda y no a la carpeta base / root bin. Por ejemplo: ~/anaconda3/envs/myenv/biny no ~/anaconda3/bin) Sí. simplemente puede agregar la carpeta bin anaconda (p. ej .:) ~/anaconda3/bina la RUTA del sistema y luego source activate ENV_NAMEen su ~/.bashrco ~/.bash_profile. No se recomendó porque los archivos de configuración ( ~/.bashrco ~/.bash_profile) se obtienen y no se ejecutan cuando se abre un nuevo terminal bash.
Praveen Palanisamy

0

Esto puede estar en algún lugar arriba (pero primero me equivoqué). Es importante que en su archivo bashrc primero exporte su ruta conda. Entonces el camino a conda (o miniconda, etc.) vendrá por encima de la conda activate <env>línea. El formato es así:

export <path to conda bin>

<any other conda initializations>

conda activate <env>


-1

Para activar el entorno conda, simplemente ponga esto al final de su archivo .bashrc para abrir la terminal abierta .bashrc , vaya al directorio de inicio. Ejecutar / escribir nano .bashrc, en el indicador coloque lo siguiente al final del archivo:

conda activate my_environment_name

ahora guarde el archivo .bashrc ( Ctrl+ Shift+ o) presione enter.


Si bien no soy un experto en conda, puedo decir que no se ~$refiere a nada más ~$que (que no es nada). ~o $HOMEhará referencia/home/user/
j-money

sí "~" es a lo que me refiero. así que cuando ves ~ $ en tu entorno familiar solo tratando de explicar para que cualquiera pueda entender, es una pena que hayas votado negativamente sobre el signo del dólar, ya que esto podría haber sido útil en relación con la pregunta en cuestión ...
Alice

Desafortunadamente para mí, comenté pero no voté negativamente (así que ahora tengo las consecuencias). En cualquier caso, ¿cómo puede alguien entender ~$como el camino correcto cuando ni siquiera es un camino?
j-money

ok punto tomado, intentaré ser más "específico"
Alice
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.