Ich habe kürzlich anaconda2 auf meinem Mac installiert. Standardmäßig ist Conda so konfiguriert, dass die Basisumgebung aktiviert wird, wenn ich eine neue Terminalsitzung öffne.
Ich möchte Zugriff auf die Conda-Befehle (dh ich möchte, dass der Pfad zu Conda zu meinem $ PATH hinzugefügt wird, was Conda bei der Initialisierung tut, damit das in Ordnung ist).
Aber ich programmiere normalerweise nicht in Python und ich möchte nicht, dass Conda standardmäßig eine Umgebung aktiviert.
Bei der ersten Ausführung conda init
über die Eingabeaufforderung fügt Conda Folgendes zu meinem hinzu .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 <<<
Wenn ich den gesamten Block auskommentiere, kann ich keine Conda-Umgebungen aktivieren.
Ich habe versucht, den ganzen Block bis auf auskommentieren
export PATH="/Users/geoff/anaconda2/bin:$PATH"
Als ich dann eine neue Sitzung startete und versuchte, eine Umgebung zu aktivieren, wurde folgende Fehlermeldung angezeigt:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
Diese Frage (und andere, die sie mögen) sind hilfreich, beantworten aber letztendlich meine Frage nicht und sind eher für Linux-Benutzer geeignet.
Zur Verdeutlichung bitte ich nicht, das (base)
von meinem zu entfernen. $PS1
Ich bitte Conda, die Basis nicht zu aktivieren, wenn ich eine Terminalsitzung öffne.
source activate
stattdessen zu verwenden ? aka "the oldschool method"Antworten:
Ich habe Conda 4.6 mit einem ähnlichen Codeblock, der von Conda hinzugefügt wurde. In meinem Fall gibt es eine Conda-Konfigurationseinstellung, um die automatische Basisaktivierung zu deaktivieren:
Wenn Sie es zum ersten Mal ausführen, wird
./condarc
in Ihrem Home-Verzeichnis ein mit dieser Einstellung erstellt, um die Standardeinstellung zu überschreiben.Dies würde Ihre nicht
.bash_profile
übersichtlich machen, aber es ist eine sauberere Lösung, ohne den Abschnitt, den conda verwaltet, manuell zu bearbeiten.quelle
conda config --describe
. Das Durchsuchen der Codebasis nach "auto_activate_base" scheint zu zeigen, dass Conda v4.6.0 die Einführung ist.conda config --set auto_activate_base false
Vielen Dank, dass Sie Anaconda3 installiert haben!Die Antwort hängt ein wenig von der Version ab
conda
, die Sie installiert haben. Für Versionen von conda> = 4.4 sollte esdeactivate
nach der Initialisierung für die conda-Umgebung ausreichen. Fügen Sie also hinzudirekt darunter
quelle
__conda_setup
Funktion, damit Sie das Ganze auf 6 Zeilen reduzieren können. Aber ich glaube nicht, dass es hier viel zu enttäuschen gibt ...Am Ende stellte ich fest, dass, wenn ich den Conda-Initialisierungsblock wie folgt auskommentierte:
Es funktioniert genau so, wie ich es will. Das heißt, Conda ist verfügbar, um eine Umgebung zu aktivieren, wenn ich möchte, aber nicht standardmäßig aktiviert.
quelle
rc
Datei entfernt? Das würde mich auch interessieren, wenn ich in der Lage wäre, Conda wie andere Envs zu behandeln, anstatt die Dingeconda config --set auto_activate_base false
haben. Können Sie das näher erläutern?Es gibt 3 Möglichkeiten, dies nach
conda
4.6 zu erreichen . (Die letzte Methode hat die höchste Priorität.)Verwenden Sie den Unterbefehl
conda config
, um die Einstellung zu ändern.Tatsächlich
conda config
ändert der frühere Unterbefehl die Konfigurationsdatei.condarc
. Wir können.condarc
direkt ändern . Fügen Sie folgenden Inhalt in.condarc
Ihr Home-Verzeichnis ein:Legen Sie die Umgebungsvariable
CONDA_AUTO_ACTIVATE_BASE
in der Init-Datei der Shell fest. (.bashrc
für Bash,.zshrc
für Zsh)Die Umgebungseinstellungen haben Vorrang vor den entsprechenden Einstellungen in der
.condarc
Datei.Verweise
conda config --describe
quelle
export CONDA_AUTO_ACTIVATE_BASE=false; eval "$(conda shell.bash hook)"
export CONDA_AUTO_ACTIVATE_BASE=false
meine .zshrc hinzufügen , damit Option 3 funktioniert.So deaktivieren Sie die automatische Aktivierung der Conda-Basisumgebung im Terminal:
So aktivieren Sie die Conda-Basisumgebung:
quelle
Eine Sache, auf die nicht hingewiesen wurde, ist, dass es kaum einen Unterschied zwischen einer nicht aktiven Umgebung und der Aktivierung der Basisumgebung gibt, wenn Sie nur Anwendungen aus dem Skriptverzeichnis von Conda (Python) ausführen möchten (wie @DryLabRebel dies wünscht ).
Sie können über conda installieren und deinstallieren, und conda zeigt die Basisumgebung als aktiv an - was im Wesentlichen Folgendes ist:
quelle
Wenn Sie Ihren bashrc einfach halten möchten, können Sie alle
conda init
erzeugten Unordnung entfernen und nur eine einzige Zeile beibehalten :Siehe Empfohlene Änderung, um conda in Ihrer Shell zu aktivieren .
Dadurch wird der Befehl conda verfügbar, ohne die Basisumgebung zu aktivieren.
Wenn Sie Ihren bashrc auf anderen Systemen verwenden möchten, auf denen conda nicht im selben Pfad installiert ist, können Sie auch die Zeilen
if
/ beibehaltenfi
, um Fehlermeldungen zu vermeiden, z.quelle
Dies könnte ein Fehler der jüngsten Anakonda sein. Was funktioniert bei mir:
Schritt 1 :
vim /anaconda/bin/activate
, zeigt es:Schritt 2: Kommentieren Sie die letzte Zeile aus:
# conda activate "$@"
quelle
Ich hatte das gleiche Problem. Anfangs habe ich das .bash_profile gelöscht, aber das ist nicht der richtige Weg. Nach der Installation von anaconda werden die Anweisungen für dieses Problem deutlich angezeigt. Bitte überprüfen Sie das Bild für die von Anaconda bereitgestellte Lösung
quelle