Come faccio ad attivare un ambiente conda nel mio .bashrc?


18

Uso Conda per la gestione dei pacchetti in Python. Ho un ambiente di base che uso quasi sempre e voglio che sia caricato di default quando apro un terminale. Come configuro my .bashrcper caricare l'ambiente?

Finora ho provato source activate myenv, ma la mia comprensione è che devo fornire un percorso effettivo all'interno del .bashrcfile. Ho quindi provato source ~/anaconda3/envs/myenv/bin/activate. Anche se questo non genera un errore, non attiva anche l'ambiente. Sto eseguendo Ubuntu 16.04.

Risposte:


21

Sembra che le risposte accettate potrebbero non essere aggiornate. Dai documenti :

Se la tua shell è Bash o una variante Bourne, abilita conda per l'utente corrente con

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

o, per tutti gli utenti, abilitare conda con

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

Le opzioni sopra abiliteranno permanentemente il comando 'conda', ma NON mettono l'ambiente di base (root) di conda su PATH. Per farlo, corri

$ conda activate

nel tuo terminale, o per mettere permanentemente l'ambiente base su PATH, esegui

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

Prima di conda 4.4, il modo consigliato per attivare conda era modificare PATH nel file ~ / .bashrc. È necessario rimuovere manualmente la linea che appare

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

^^^ La riga sopra non dovrebbe MAI PIÙ essere nel tuo file ~ / .bashrc! ^^^


Il metodo softlink è RAD!
abalter

Se l'aggiunta in .bashrc non funziona, prova ad aggiungerla nel file .profile.
oya163,

4

Durante l'installazione di Anaconda dovrebbe esserci una voce aggiunta al file .bashrc in questo modo

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

se non è presente, verifica l'installazione eseguendo which condae aggiorna .bashrc con il percorso fino al cestino.

Questo punta all'eseguibile 'conda' e imposta il percorso per gestire l'attivazione conda.

Aggiungi questa riga dopo il comando export:

source activate <your_environment>

da lì è possibile source ~/.bashrccaricare l'ambiente nella shell corrente.


1

Per l'uso bash:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

Questo modificherà automaticamente il tuo .bashrc.

Ricaricare:

$ source ~/.bashrc

Test (installa Spyder):

$ conda install -c anaconda spyder

Esegui Spyder

$ spyder

1

Correzione corretta

(funziona per versioni> = 4.6)

find . -type f -name 'conda' controlla dove si trova il file binario di conda e quindi il cd o indica semplicemente il percorso completo ed esegui

conda config --set auto_activate_base true

Per disattivare basta fare lo stesso ma con false. Ovviamente:

conda config --set auto_activate_base false

Correzione rapida e sporca n. 1

Incolla quanto segue nel tuo .bashrc, sostituiscilo con l'ovvio e crea il tuo .bashrc ( source .bashrc). Dovrebbe funzionare per la versione di 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 <<<

Questo è un taglia e incolla dal mio .bashrc, puoi rimuovere i commenti ma li trovo utili come delimitatori.

Correzione rapida e sporca n. 2

Rimuovi tutto con il tuo comando di rimozione preferito ( rm -rf ~/miniconda3), esegui di nuovo lo script di installazione e presta attenzione al prompt in quanto ti chiederà se vuoi avviarlo automaticamente.

Qualunque cosa scuoti la tua barca :)


0

Se vuoi che un ambiente conda sia attivato di default quando avvii un nuovo terminale bash, puoi aggiungere la seguente riga al tuo ~/.bashrcfile:

export PATH=<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>:$PATH

È necessario sostituire <PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>nella riga sopra con il percorso completo per l'ambiente conda.

Nel tuo caso, puoi aggiungere la seguente riga al tuo ~/.bashrcfile:

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

Fondamentalmente stiamo aggiungendo la bindirectory del tuo ambiente conda come prima voce nel tuo PATH che è essenzialmente ciò activateche farà lo script di convenienza. Successivamente, quando si apre un nuovo terminale bash, l'ambiente conda sarà "attivato" / "abilitato" per impostazione predefinita.

Nota che potresti non vedere il (myenv)prefisso al tuo prompt di bash come faresti se lo facessi source activate myenv. Se si desidera visualizzare anche il prefisso al prompt, aggiungere la seguente riga al ~/.bashrcfile:

export PS1="(myenv)"$PS1

Dov'è (myenv)qualsiasi nome personalizzato che puoi dare che verrà mostrato come prefisso al prompt di bash.


Per me questo funziona, ma conda info --envsmostra ancora l' rootambiente come attuale. C'è qualche motivo per cui non posso semplicemente aggiungere source activate py34(py34 è il nome del mio ambiente) al mio ~ / .bashrc? Sembra funzionare, ma c'è qualche motivo per cui questo non è stato raccomandato?
BStateham

Assicurarsi che la PATHvariabile punti alla bincartella nella cartella dell'ambiente conda e non alla cartella bin base / root. Ad esempio: ~/anaconda3/envs/myenv/bine non ~/anaconda3/bin) Sì. puoi semplicemente aggiungere la cartella bin anaconda (es .:) ~/anaconda3/binal sistema PATH e poi source activate ENV_NAMEnel tuo ~/.bashrco ~/.bash_profile. Non è stato raccomandato perché, i file di configurazione ( ~/.bashrco ~/.bash_profile) sono essi stessi acquistati e non vengono eseguiti quando viene aperto un nuovo terminale bash.
Praveen Palanisamy,

0

Questo potrebbe essere da qualche parte sopra (ma prima ho sbagliato). È importante che nel tuo file bashrc esporti prima il tuo percorso conda. Quindi il percorso per conda (o miniconda ecc.) Verrà sopra la conda activate <env>linea. Il formato è così:

export <path to conda bin>

<any other conda initializations>

conda activate <env>


-1

Per ambiente Conda attivare in poche parole questo alla fine del tuo .bashrc file da aprire .bashrc terminale aperto, andare a home directory. Esegui / digitare nano .bashrc, al prompt inserire quanto segue alla fine del file:

conda activate my_environment_name

ora salva il file .bashrc ( Ctrl+ Shift+ o) premi invio.


Anche se non sono un esperto di conda, posso dirti che si ~$riferisce a nient'altro che ~$(che non è nulla). ~o $HOMEfarà riferimento/home/user/
j-money il

si "~" è ciò a cui mi riferisco. quindi quando vedi ~ $ il tuo ambiente domestico che sta solo cercando di spiegare in modo che chiunque possa capire, è un peccato che tu abbia declassato il segno del dollaro in quanto ciò potrebbe essere stato utile in relazione alla domanda attuale in mano ...
Alice

Sfortunatamente per me, ho commentato ma non ho votato in modo negativo (quindi ora ottengo le conseguenze) .. In ogni caso come si può capire ~$come il percorso corretto quando non è nemmeno un percorso?
j-money il

ok punto preso, cercherò di essere più "specifico"
Alice
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.