Comment activer un environnement conda dans mon .bashrc?

18

J'utilise Conda pour la gestion des packages en Python. J'ai un environnement de base que j'utilise presque tout le temps, et je veux qu'il soit chargé par défaut lorsque j'ouvre un terminal. Comment configurer mon .bashrcpour charger l'environnement?

Jusqu'à présent, j'ai essayé source activate myenv, mais je crois comprendre que je dois fournir un chemin réel dans le .bashrcfichier. J'ai ensuite essayé source ~/anaconda3/envs/myenv/bin/activate. Bien que cela ne génère pas d'erreur, il n'active pas non plus l'environnement. J'utilise Ubuntu 16.04.

Liz Sander
la source

Réponses:

21

Il semble que les réponses acceptées soient obsolètes. De la documentation :

Si votre shell est Bash ou une variante Bourne, activez conda pour l'utilisateur actuel avec

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

ou, pour tous les utilisateurs, activez conda avec

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

Les options ci-dessus activeront de façon permanente la commande 'conda', mais elles ne placent PAS l'environnement de base (racine) de conda sur PATH. Pour ce faire, exécutez

$ conda activate

dans votre terminal, ou pour mettre l'environnement de base sur PATH en permanence, exécutez

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

Avant conda 4.4, la façon recommandée d'activer conda était de modifier le CHEMIN dans votre fichier ~ / .bashrc. Vous devez supprimer manuellement la ligne qui ressemble à

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

^^^ La ligne ci-dessus ne devrait PLUS ÊTRE dans votre fichier ~ / .bashrc! ^^^

jerpint
la source
La méthode du softlink est RAD!
abalter
Si l'ajout dans .bashrc ne fonctionne pas, essayez de l'ajouter dans le fichier .profile.
oya163
4

Pendant l'installation d'Anaconda, il devrait y avoir une entrée ajoutée le fichier .bashrc comme ceci

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

s'il n'est pas là, vérifiez l'installation en exécutant which condaet mettez à jour .bashrc avec le chemin d'accès à bin.

Cela pointe vers l'exécutable «conda» et définit le chemin pour gérer l'activation de conda.

Ajoutez cette ligne après la commande d'exportation:

source activate <your_environment>

à partir de là, vous pouvez source ~/.bashrccharger l'environnement dans le shell actuel.

Ogre55
la source
1

Pour une utilisation bash:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

Cela modifiera automatiquement votre .bashrc .

Recharger:

$ source ~/.bashrc

Testez (installez Spyder):

$ conda install -c anaconda spyder

Exécutez Spyder

$ spyder
aldite
la source
1

Correct Fix

(fonctionne pour les versions> = 4.6)

find . -type f -name 'conda' vérifier où se trouve le binaire conda et ensuite le cd ou donner le chemin complet et exécuter

conda config --set auto_activate_base true

Pour désactiver, faites de même mais avec false. Évidemment:

conda config --set auto_activate_base false

Solution rapide et sale # 1

Collez ce qui suit dans votre .bashrc, remplacez par l'évident et sourcez votre .bashrc ( source .bashrc). Devrait fonctionner pour la version 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 <<<

Ceci est un copier-coller de mon propre .bashrc, vous pouvez supprimer les commentaires mais je les trouve pratiques comme délimiteurs.

Solution rapide et sale # 2

Supprimez le tout avec votre commande de suppression préférée ( rm -rf ~/miniconda3), exécutez à nouveau le script d'installation et faites attention à l'invite car cela vous demandera si vous souhaitez le démarrer automatiquement.

Tout ce qui secoue votre bateau :)

runlevel0
la source
0

Si vous souhaitez qu'un environnement conda soit activé par défaut lorsque vous lancez un nouveau terminal bash, vous pouvez ajouter la ligne suivante à votre ~/.bashrcfichier:

export PATH=<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>:$PATH

Vous devez remplacer <PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>dans la ligne ci-dessus par le chemin d'accès complet à votre environnement conda.

Dans votre cas, vous pouvez ajouter la ligne suivante à votre ~/.bashrcfichier:

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

Fondamentalement, nous ajoutons le bin répertoire de votre environnement conda comme première entrée dans votre PATH, qui est essentiellement ce que leactivate script de commodité fera. Après cela, lorsque vous ouvrez un nouveau terminal bash, l'environnement conda sera "activé" / "activé" par défaut.

Notez que vous ne verrez peut-être pas le (myenv)préfixe de votre invite bash comme si vous le faisiez source activate myenv. Si vous souhaitez que le préfixe de votre invite s'affiche également, ajoutez la ligne suivante à votre ~/.bashrcfichier:

export PS1="(myenv)"$PS1

Où se (myenv)trouve tout nom personnalisé que vous pouvez donner qui s'affichera comme préfixe de l'invite bash.

Praveen Palanisamy
la source
Pour moi, cela fonctionne, mais conda info --envsmontre toujours l' rootenvironnement actuel. Y a-t-il une raison pour laquelle je ne peux pas simplement ajouter source activate py34(py34 est le nom de mon environnement) à mon ~ / .bashrc? Cela semble fonctionner, mais y a-t-il une raison pour laquelle cela n'a pas été recommandé?
BStateham
Assurez-vous que la PATHvariable pointe vers le bindossier sous le dossier de l'environnement conda et non vers le dossier bin de base / racine. Par exemple: ~/anaconda3/envs/myenv/binet non ~/anaconda3/bin) Oui. vous pouvez simplement ajouter le dossier bin anaconda (par exemple:) ~/anaconda3/binau système PATH puis source activate ENV_NAMEdans votre ~/.bashrcou ~/.bash_profile. Cela n'était pas recommandé car les fichiers de configuration ( ~/.bashrcou ~/.bash_profile) sont eux-mêmes originaires et ne sont pas exécutés lors de l'ouverture d'un nouveau terminal bash.
Praveen Palanisamy
0

Cela peut être quelque part au-dessus (mais je me suis d'abord trompé). Il est important que dans votre fichier bashrc vous exportiez d'abord votre chemin conda. Ainsi, le chemin vers conda (ou miniconda, etc.) viendra au dessus de la conda activate <env>ligne. Le format est le suivant:

export <path to conda bin>

<any other conda initializations>

conda activate <env>
ashley
la source
0

Utilisation:

conda init bash

Cela modifiera automatiquement votre fichier.bashrc .

Harshit Parashar
la source
-1

Pour activer l'environnement conda, mettez-le simplement à la fin de votre fichier .bashrc pour ouvrir le terminal ouvert .bashrc , accédez au répertoire personnel. Exécutez / tapez nano .bashrc, à l'invite, mettez ce qui suit à la fin du fichier:

conda activate my_environment_name

maintenant enregistrez le fichier .bashrc ( Ctrl+ Shift+ o) appuyez sur entrée.

Alice
la source
Bien que je ne sois pas un expert en conda, je peux vous dire qu'il ne ~$fait référence à rien mais ~$(ce qui n'est rien). ~ou $HOMEréférencera/home/user/
j-money
oui "~" est ce à quoi je fais référence. donc quand vous voyez ~ $ votre environnement domestique essayant simplement d'expliquer pour que tout le monde puisse comprendre, sa pitié que vous avez voté contre le signe dollar car cela aurait pu être utile concernant la vraie question en main ...
Alice
Malheureusement pour moi, j'ai commenté mais je n'ai pas baissé les voix (alors maintenant j'obtiens la suite) .. En tout état de cause, comment peut-on comprendre ~$que le chemin correct quand ce n'est même pas un chemin?
j-money
ok point pris, je vais essayer d'être plus "spécifique"
Alice