Wie aktiviere ich eine Conda-Umgebung in meiner .bashrc?

18

Ich benutze Conda für die Paketverwaltung in Python. Ich habe eine Basisumgebung, die ich fast immer benutze, und ich möchte, dass sie standardmäßig geladen wird, wenn ich ein Terminal öffne. Wie richte ich meine ein .bashrc, um die Umgebung zu laden?

Bisher habe ich es versucht source activate myenv, aber ich verstehe, dass ich einen tatsächlichen Pfad innerhalb der .bashrcDatei angeben muss. Ich habe es dann versucht source ~/anaconda3/envs/myenv/bin/activate. Dies wirft zwar keinen Fehler aus, aktiviert aber auch nicht die Umgebung. Ich verwende Ubuntu 16.04.

Liz Sander
quelle

Antworten:

21

Es sieht so aus, als wären die akzeptierten Antworten veraltet. Aus den Dokumenten :

Wenn Ihre Shell Bash oder eine Bourne-Variante ist, aktivieren Sie conda für den aktuellen Benutzer mit

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

oder aktivieren Sie für alle Benutzer conda mit

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

Die oben genannten Optionen aktivieren den Befehl 'conda' dauerhaft, setzen jedoch NICHT die Basisumgebung (root) von conda auf PATH. Führen Sie dazu aus

$ conda activate

Führen Sie in Ihrem Terminal aus oder führen Sie die Basisumgebung dauerhaft auf PATH aus

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

Vor conda 4.4 wurde empfohlen, conda zu aktivieren, indem PATH in Ihrer ~ / .bashrc-Datei geändert wurde. Sie sollten die aussehende Linie manuell entfernen

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

^^^ Die obige Zeile sollte NICHT MEHR in Ihrer ~ / .bashrc-Datei sein! ^^^

jerpint
quelle
Die Softlink-Methode ist RAD!
Abalter
Wenn das Hinzufügen in .bashrc nicht funktioniert, versuchen Sie, es in die .profile-Datei einzufügen.
oya163
4

Während der Anaconda-Installation sollte ein Eintrag in der .bashrc-Datei wie folgt hinzugefügt werden

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

Wenn es nicht vorhanden ist, überprüfen Sie die Installation, indem Sie es which condaausführen, und aktualisieren Sie .bashrc mit dem Pfad bis bin.

Dies zeigt auf die ausführbare Datei 'conda' und legt den Pfad für die Aktivierung von conda fest.

Fügen Sie diese Zeile nach dem Exportbefehl hinzu:

source activate <your_environment>

Von dort aus können Sie source ~/.bashrcdie Umgebung in die aktuelle Shell laden.

Ogre55
quelle
1

Für Bash-Verwendung:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

Das wird Ihre automatisch bearbeiten .bashrc.

Neu laden:

$ source ~/.bashrc

Test (installieren Sie Spyder):

$ conda install -c anaconda spyder

Führen Sie Spyder aus

$ spyder
Alditis
quelle
0

Wenn Sie möchten, dass eine Conda-Umgebung beim Starten eines neuen Bash-Terminals standardmäßig aktiviert wird, können Sie Ihrer ~/.bashrcDatei die folgende Zeile hinzufügen :

export PATH=<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>:$PATH

Sie sollten <PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>in der obigen Zeile durch den vollständigen Pfad zu Ihrer Conda-Umgebung ersetzen.

In Ihrem Fall können Sie Ihrer ~/.bashrcDatei die folgende Zeile hinzufügen :

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

Grundsätzlich fügen wir das binVerzeichnis Ihrer Conda-Umgebung als ersten Eintrag in Ihren PATH hinzu, was im Wesentlichen das activateConvenience-Skript bewirkt . Wenn Sie danach ein neues Bash-Terminal öffnen, wird die Conda-Umgebung standardmäßig "aktiviert" / "aktiviert".

Beachten Sie, dass das (myenv)Präfix Ihrer Bash-Eingabeaufforderung möglicherweise nicht so angezeigt wird, wie Sie es sonst tun würden source activate myenv. Wenn das Präfix Ihrer Eingabeaufforderung ebenfalls angezeigt werden soll, fügen Sie Ihrer ~/.bashrcDatei die folgende Zeile hinzu :

export PS1="(myenv)"$PS1

Wo (myenv)ist ein benutzerdefinierter Name, den Sie angeben können, der als Präfix für die Bash-Eingabeaufforderung angezeigt wird.

Praveen Palanisamy
quelle
Für mich funktioniert das, conda info --envszeigt aber immer noch die rootUmgebung als aktuell. Gibt es einen Grund, warum ich source activate py34meinem ~ / .bashrc nicht einfach hinzufügen kann (py34 ist mein Umgebungsname)? Es scheint zu funktionieren, aber gibt es einen Grund, warum dies nicht empfohlen wurde?
BStateham
Stellen Sie sicher, dass die PATHVariable auf den binOrdner unter dem Ordner der Conda-Umgebung und nicht auf den Ordner base / root bin zeigt. Zum Beispiel: ~/anaconda3/envs/myenv/binund nicht ~/anaconda3/bin) Ja. Sie können einfach den Ordner anaconda bin (z. B. ~/anaconda3/bin) zum Systempfad und dann source activate ENV_NAMEin Ihrem ~/.bashrcoder hinzufügen ~/.bash_profile. Es wurde nicht empfohlen, da die Konfigurationsdateien ( ~/.bashrcoder ~/.bash_profile) selbst bezogen werden und nicht ausgeführt werden, wenn ein neues Bash-Terminal geöffnet wird.
Praveen Palanisamy
0

Dies kann irgendwo oben sein (aber ich habe es zuerst falsch verstanden). Es ist wichtig, dass Sie in Ihrer bashrc-Datei zuerst Ihren Conda-Pfad exportieren. Der Weg zur Conda (oder Miniconda usw.) kommt also über die conda activate <env>Linie. Das Format ist wie folgt:

export <path to conda bin>

<any other conda initializations>

conda activate <env>
Ashley
quelle
0

Verwenden:

conda init bash

Das wird Ihre automatisch bearbeiten .bashrc.

Harshit Parashar
quelle
0

Richtige Korrektur

(funktioniert für Versionen> = 4.6)

find . -type f -name 'conda' Überprüfen Sie, wo sich die Conda-Binärdatei befindet, und legen Sie die CD darauf oder geben Sie einfach den vollständigen Pfad an und führen Sie sie aus

conda config --set auto_activate_base true

Zum Deaktivieren machen Sie dasselbe, aber mit false. Offensichtlich:

conda config --set auto_activate_base false

Quick & Dirty Fix # 1

Fügen Sie Folgendes in Ihre .bashrc ein, ersetzen Sie es durch die offensichtliche und geben Sie Ihre .bashrc ( source .bashrc) ein. Sollte für Miniconda3 Version> = 4.6 funktionieren

# >>> 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 <<<

Dies ist ein Ausschneiden und Einfügen aus meiner eigenen .bashrc. Sie können die Kommentare entfernen, aber ich finde sie praktisch als Trennzeichen.

Quick & Dirty Fix # 2

Entfernen Sie das Ganze mit Ihrem bevorzugten Entfernungsbefehl ( rm -rf ~/miniconda3), führen Sie das Installationsskript erneut aus und beachten Sie die Eingabeaufforderung, da Sie gefragt werden, ob Sie es automatisch starten möchten.

Was auch immer dein Boot rockt :)

runlevel0
quelle
-1

Um die Conda-Umgebung zu aktivieren, fügen Sie diese einfach am Ende Ihrer .bashrc- Datei ein, um das .bashrc- Open-Terminal zu öffnen. Wechseln Sie in das Home-Verzeichnis. Führen Sie nano .bashrcan der Eingabeaufforderung am Ende der Datei Folgendes aus: Geben Sie Folgendes ein:

conda activate my_environment_name

Speichern Sie nun die .bashrc- Datei ( Ctrl+ Shift+ o) und drücken Sie die Eingabetaste.

Alice
quelle
Obwohl ich kein Conda-Experte bin, kann ich Ihnen sagen, dass Sie ~$sich auf nichts anderes beziehen als ~$(was nichts ist). ~oder $HOMEwird verweisen/home/user/
j-money
Ja, "~" ist das, worauf ich mich beziehe. Wenn Sie also sehen, dass ~ $ Ihre häusliche Umgebung nur versucht zu erklären, damit jeder verstehen kann, ist es schade, dass Sie über das Dollarzeichen herabgestimmt haben, da dies im Zusammenhang mit der eigentlichen Frage hilfreich gewesen sein könnte ...
Alice
Leider für mich, habe ich kommentiert, aber nicht abgelehnt (so jetzt bekomme ich die Folgen). Wie kann jemand auf jeden Fall ~$als den richtigen Pfad verstehen, wenn es nicht einmal ein Pfad ist?
J-Geld
ok Punkt genommen, ich werde versuchen, "spezifischer" zu sein
Alice