So ändern Sie die Standard-Anaconda-Python-Umgebung

170

Ich habe Anaconda installiert und zwei zusätzliche Umgebungen erstellt: py3k (mit Python 3.3) und py34 (mit Python 3.4). Außerdem habe ich eine Standardumgebung namens 'root', die das Anaconda-Installationsprogramm standardmäßig erstellt hat und die Python 2.7 enthält. Letzteres ist die Standardeinstellung, wenn ich 'ipython' vom Terminal aus starte, erhalte ich Version 2.7. Um mit Python 3.4 arbeiten zu können, muss ich die Befehle (in der Shell) ausgeben.

source activate py34
ipython

die die Standardumgebung auf Python 3.4 ändern. Das funktioniert gut, aber es ist ärgerlich, da ich die meiste Zeit an Python 3.4 arbeite, anstatt an Python 2.7 (das ich zu Unterrichtszwecken halte, es ist eine ziemlich lange Geschichte). Wie auch immer, ich möchte wissen, wie man die Standardumgebung auf Python 3.4 ändert, wobei ich bedenke, dass ich nicht alles von Grund auf neu installieren möchte.

user2734434
quelle
7
Haben Sie darüber nachgedacht, source activate py34in Ihrem zu verwenden .bashrc?
Cel
1
Danke für deine Antwort. Ich habe es nicht ausprobiert, da es meiner Meinung nach nicht möglich ist, die Quellaktivierung über ein Bash-Skript aufzurufen, da der Quellbefehl in derselben Shell und nicht in einer Subshell ausgeführt werden muss. Ich habe versucht, die beiden obigen Zeilen in ein Bash-Skript einzufügen, und das kann ich sagen, funktioniert nicht.
user2734434
4
Ich habe CONDA_ROOT="/Users/bla/miniconda"und source ${CONDA_ROOT}/bin/activate ${CONDA_ROOT}/envs/empty &> /dev/nullin meinem .bashrcund es scheint gut zu funktionieren.
Cel
1
Ich denke, es .bashrcwird nicht als Skript ausgeführt, sondern von der neuen Shell bezogen. Daher können Sie es nicht überprüfen, indem Sie ein Bash-Skript ausführen.
Cel
3
@ user2734434 Die bashrc-Datei wird zu Beginn der Sitzung bezogen. Wenn Sie sie also eingeben, wirkt sich source activatedies auf die Shell-Umgebung aus.
Asmeurer

Antworten:

86

Wenn Sie nur zu einer anderen Umgebung wechseln möchten, verwenden Sie

source activate environment-name

(Sie können environment-namemit `conda create erstellen)


Normalerweise ist es am besten, nur neue Umgebungen zu erstellen. Wenn Sie jedoch die Python-Version in der Standardeinstellung wirklich ändern möchten , können Sie dies wie folgt tun:

Stellen Sie zunächst sicher, dass Sie die neueste Version von conda haben, indem Sie ausführen

conda update conda

Dann renne

conda install python=3.5

Dadurch wird versucht, alle Ihre Pakete in Ihrer Root-Umgebung auf Python 3-Versionen zu aktualisieren. Wenn dies nicht möglich ist (z. B. weil einige Pakete nicht für Python 3.5 erstellt wurden), wird eine Fehlermeldung angezeigt, die angibt, welche Pakete das Problem verursacht haben.

Wenn Sie Pakete mit pip installiert haben, müssen Sie sie neu installieren.

asmeurer
quelle
1
@flutefreak Es funktioniert jetzt tatsächlich unter Windows ( conda update condazuerst ausführen , um sicherzustellen, dass Sie die neueste Version haben). Ich werde die Antwort aktualisieren.
Asmeurer
126
Diese Antwort scheint keine Verbindung zu der Frage zu haben, bei der es um das Ändern der Standardumgebung geht.
Bob
16
@asmeurer Aber das wurde nicht gefragt. Er möchte keine Pakete in irgendeiner Umgebung aktualisieren. Er möchte py34 zur Standardumgebung machen, um ohne Intervention aktiv zu sein, also ist py34 aktiv, bevor er den Befehl "source enable" sendet.
Bob
20
Ich muss @Bob hier zustimmen. Die Pakete in der Root-Umgebung werden auf 3.5 aktualisiert. Dies hat möglicherweise das spezifische Problem des Originalplakats gelöst. Wenn Sie jedoch eine Eingabeaufforderung öffnen, befinden Sie sich weiterhin in der Stammumgebung, sodass Sie keine andere Standardumgebung angegeben haben. Da jeder, der dies erreichen will und googelt, bei dieser Frage landet, wäre es besser, wenn auch die ursprünglichen Fragen beantwortet würden. Vielleicht ist es nicht möglich, die Standardumgebung auf etwas anderes als root zu ändern?
Arjan
4
Das funktioniert bei mir nicht. Mein Standard ist Python 3.4. Mit dem Flag wurde python=3.5Python nicht von 3.4 auf 3.5 aktualisiert. Irgendwelche Vorschläge?
WillZ
56

Überblick
Einige Benutzer haben aus Kompatibilitätsgründen mehrere Anaconda-Umgebungen mit unterschiedlichen Python-Versionen. In diesem Fall sollten Sie über ein Skript verfügen, das Ihre Standardumgebung festlegt. Mit dieser Methode können Sie die in Ihren Umgebungen verwendeten Python-Versionen beibehalten.

Im Folgenden wird Umgebungsname angenommen der Name Ihrer Umgebung ist

Mac / Linux:
Bearbeiten Sie Ihr Bash-Profil so, dass die letzte Zeile stehtsource activate environment_name . Unter Mac OS X ist dies ~ / .bash_profile, in anderen Umgebungen kann dies ~ / .bashrc sein

Beispiel:
So habe ich es unter Mac OSX gemacht

  1. Öffnen Sie das Terminal und geben Sie Folgendes ein:

    nano ~/.bash_profile

  2. Gehen Sie zum Ende der Datei und geben Sie Folgendes ein, wobei "p3.5" meine Umgebung ist:

    source activate p3.5

  3. Datei beenden. Starten Sie ein neues Terminalfenster.

  4. Geben Sie Folgendes ein, um zu sehen, welche Umgebung aktiv ist

    conda info -e

Das Ergebnis zeigt, dass ich standardmäßig meine p3.5-Umgebung verwende.

Für Windows:
Erstellen Sie eine Befehlsdatei (.cmd) mit activate environment_nameund befolgen Sie diese Anweisungen, damit sie ausgeführt wird, wenn Sie eine Eingabeaufforderung öffnen

  1. Erstellen Sie einen Batchdatei-Befehl, z. B. "my_conda.cmd", und legen Sie ihn im Ordner "Anwendungsdaten" ab.
  2. Konfigurieren Sie es so, dass es beim Öffnen automatisch gestartet wird cmd. Diese Einstellung befindet sich in der Registrierung:
    Schlüssel: HKCU \ SOFTWARE \ Microsoft \ Command Prozessorwert
    : AutoRun-
    Typ: REG_EXPAND_SZ
    Daten: "% AppData% \ my_conda.cmd"

Aus dieser Antwort: https://superuser.com/a/302553/143794

Faust der Wut
quelle
1
Vielen Dank. Ich stellte fest, dass ich mit meiner Mac-Version Python 2 nicht loswerden kann. Befolgen Sie daher die empfohlene Aktion zum Einrichten von zwei separaten Umgebungen, aber es war sehr ärgerlich, daran denken zu müssen, die Umgebung in jedem neuen Terminalfenster zu aktivieren. Das funktioniert!
Livvy Jeffs
Dies führt zu einem Rohrbruch und einer eingefrorenen Eingabeaufforderung, wenn ich dies unter Windows 10
mache
Hat jemand unter Windows 10 besseres Glück damit?
Wassadamo
3
Dies sollte die akzeptierte Antwort sein (zumindest für Unix-basiertes Conda)!
Simon Van Machin
50

Unter Linux gibt es einen einfacheren Weg , um die Standardumgebung eingestellt durch Modifizieren ~/.bashrcoder ~/.bash_profile Am Ende werden Sie so etwas wie finden

# added by Anaconda 2.1.0 installer
export PATH="~/anaconda/bin:$PATH"

Ersetzen Sie es durch

# set python3 as default
export PATH="~/anaconda/envs/python3/bin:$PATH"

und das ist alles was dazu gehört.

Jev
quelle
3
Und was ist die Frage?
Dieter Meemken
Ich habe diese Lösung ausprobiert, aber sie zeigt immer noch anaconda2 auf meinem Weg. Irgendwelche Ideen?
William Ross
10
Dies legt nicht die Standardumgebung fest. Es scheint Conda zu umgehen und fälscht es zu denken, dass "python3" die Standardeinstellung ist. "conda info -e" zeigt weiterhin "root" als aktuelle Umgebung an. Ich bin immer noch auf der Suche nach einer Möglichkeit, Conda mitzuteilen, welche Standardeinstellung ist.
MrMas
8
Dies legt die Standardumgebung aus der Sicht von conda nicht fest. Es scheint Conda zu umgehen und fälscht es zu denken, dass "python3" die Standardeinstellung ist. "conda info -e" zeigt weiterhin "root" als aktuelle Umgebung an. Um dies zu beheben, müssen Sie auch CONDA_PREFIX und CONDA_DEFAULT_ENV festlegen. Selbst dann sind die Antworten immer noch ein Hack; Warum nicht einfach 'Quellaktivierung <neue Standardumgebung>' ausführen, da dies bereits mit conda als "eingebauter" Weg versehen ist, um dies zu erreichen.
MrMas
Gibt es ein .bashrcoder .bash_profileunter Windows 10? Ich habe einen unter cygwin gefunden, als ich diesem jattenberg.github.io/PDS-Fall-2013/assets/install/… gefolgt bin . Ich bin mir jedoch nicht sicher, ob ich das ändern soll, um die gewünschte Funktionalität des OP zu erhalten.
Wassadamo
13

Für Windows wird Anaconda mit der Anaconda-Eingabeaufforderung geliefert, die eine Verknüpfung zu cmd darstellt und zum Ausführen von Conda-Befehlen verwendet werden kann, ohne Anaconda in der PATH-Variablen hinzuzufügen. Suchen Sie den Speicherort, kopieren Sie die Kopie und benennen Sie sie um (z. B. myenv_prompt). Klicken Sie mit der rechten Maustaste auf myenv_prompt und wählen Sie Eigenschaften im Kontextmenü aus.

Geben Sie hier die Bildbeschreibung ein

Das Zielformular des Eigenschaftenfensters sollte bereits mit Text gefüllt sein, etwa%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ drei Teile dieses Befehls: 1) Start ... \ cmd.exe 2) Ausführen ... \ acitvate.bat mit Umgebung 3) ... \ Miniconda3 \

Ändern 3. Teil Pfad der Umwelt (zB myenv) als Standard definierte wollen das heißt füllen Zielform so etwas wie%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

Jetzt fungiert myenv_prompt als Verknüpfung zum Starten von cmd mit myenv als Standardumgebung für Python. Diese Verknüpfung können Sie im Startmenü behalten oder in der Taskleiste anheften.

Ein Vorteil dieser Methode besteht darin, dass Sie einige Verknüpfungen erstellen können, die jeweils eine andere Umgebung als Standardumgebung haben. Sie können den Standardordner auch festlegen, indem Sie Start in ausfüllen Formularfenster

Hoffe das hilft

PS: Es ist nicht erforderlich, Anaconda Prompt zu finden, und dies kann durch Ändern des Ziels einer Verknüpfung erfolgen. Sie müssen jedoch den Pfad von cmd.exe kennen und enable.bat

Kushdesh
quelle
2
Dies sollte die beste Antwort sein
James McCormac
Ich benutze diese Methode, aber mein erster Teil ist etwas anders: C:\Windows\System32\cmd.exe /c start ""Ich bin mir nicht sicher, wie ich zu dieser Lösung gekommen bin, aber hier ist ein Beitrag, den ich bezüglich der Syntax verfasst habe
xtian
8

Permanent ändern

conda install python={version}

Vorübergehend ändern

Zeigen Sie Ihre Umgebungen an

Lauf conda info --envs auf Ihrem Terminalfenster oder einer Anconda-Eingabeaufforderung aus

Wenn keine Umgebung angezeigt wird, die Sie installieren möchten

Führen Sie conda create -n py36 python=3.6 anacondafür Python 3.6 die Version nach Ihren Wünschen aus

Aktivieren einer Umgebung (Anaconda-Eingabeaufforderung verwenden)

laufen activate envnmeenvnme Sie von diesem Befehl finden können conda info --envsals Beispiel : wenn Sie conda info --envses zeigen

base * C:\Users\DulangaHeshan\Anaconda3 py36 C:\Users\DulangaHeshan\Anaconda3\envs\py36

dann renne activate py36

Lauf überprüfen python --version

In Windows empfiehlt es sich, eine Umgebung zu deaktivieren, bevor eine andere aktiviert wird. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment

Dulanga Heshan
quelle
3
Ich denke, das OP möchte eine Lösung, die die Basisumgebung auf py36 ändert, damit sie nicht activate py36jedes Mal beim Start ausgeführt werden müssen.
Wassadamo
6

Die richtige Antwort (Stand Dezember 2018) lautet ... das können Sie nicht. Das Upgrade conda install python=3.6funktioniert möglicherweise, aber möglicherweise nicht, wenn Sie über Pakete verfügen, die erforderlich sind, aber nicht deinstalliert werden können.

Anaconda verwendet eine Standardumgebung mit dem Namen baseund Sie können keine neue Umgebung (z. B. Python 3.6) mit demselben Namen erstellen. Dies ist beabsichtigt. Wenn Sie Ihre Basis Anaconda wollen Python 3.6 sein, die richtige Art und Weise , dies zu tun ist Anaconda für 3.6 Python zu installieren. Als Paketmanager ist es das Ziel von Anaconda, verschiedene Umgebungen zu kapseln. Daher müssen Sie die Aktivierung der Quelle in diese umwandeln und können das Basispaket nicht einfach nach Belieben leise wechseln, da dies zu vielen Problemen auf Produktionssystemen führen kann.

cgnorthcutt
quelle
Was ist, wenn meine Basisumgebung defekt ist und ich sie durch eine funktionierende ersetzen möchte?
Endolith
@endolith Was ist, wenn meine Basisumgebung defekt ist und ich sie durch eine funktionierende ersetzen möchte? Installieren Sie Conda neu.
AMC
@AMC Ich habe so oft neu installiert. Ich möchte einen Weg finden, um einen guten Zustand wiederherzustellen, ohne alles zu wiederholen
Endolith
1
@endolith Sie haben mehrere Male neu installiert, um genau das gleiche Problem zu beheben? Wie ist es kaputt gegangen? Wir sollten das woanders besprechen, ich habe einen Chatraum erstellt .
AMC
1

Ich war mit keiner der hier präsentierten Antworten zufrieden, da die Aktivierung einer Umgebung auf meiner Plattform einige Sekunden dauert (aus welchem ​​Grund auch immer).

Ich habe meine Pfadvariable so geändert, dass die Umgebung, die ich als Standard verwenden möchte, Vorrang vor dem tatsächlichen Standard hat.

In meinem Fall habe ich die folgenden Befehle verwendet, um dies für die Umgebung "py35" zu erreichen:

setx PATH "%userprofile%\Anaconda3\envs\py35\;%PATH%"
setx PATH "%userprofile%\Anaconda3\envs\py35\Scripts;%PATH%"

Um herauszufinden, wo Ihre Umgebung gespeichert ist, aktivieren Sie sie und geben Sie ein where python. Ich bin mir noch nicht sicher, ob dieser Ansatz Nachteile hat. Da es auch den Standardpfad der ausführbaren Conda-Datei ändert. Sollte dies der Fall sein, kommentieren Sie bitte.

dominik andreas
quelle
1

Ich habe dies bei der Installation einer Bibliothek mit Anaconda erhalten. Meine Version ging von Python 3. * auf 2.7 und viele meiner Sachen funktionierten nicht mehr. Die beste Lösung, die ich gefunden habe, war, zuerst die neueste verfügbare Version zu sehen:

conda search python

Aktualisieren Sie dann auf die gewünschte Version:

conda install python=3.*.*

Quelle: http://chris35wills.github.io/conda_python_version/

Andere hilfreiche Befehle:

conda info
python --version
Brad123
quelle
Meine Version ging von Python 3. * auf 2.7 und viele meiner Sachen funktionierten nicht mehr. Sofern mir nichts fehlt, scheint dies nicht mit der Frage und den im OP beschriebenen Informationen zu tun zu haben.
AMC
0

Erstellen Sie eine Verknüpfung der Anaconda-Eingabeaufforderung auf dem Desktop oder in der Taskleiste, und stellen Sie in den Eigenschaften dieser Verknüpfung sicher, dass Sie den letzten Pfad in "Ziel:" in den Pfad Ihrer Umgebung ändern:

C: \ Benutzer \ BenBouali \ Anaconda3 \ WIRD IN C: \ Benutzer \ BenBouali \ Anaconda3 \ envs \ tensorflow-gpu ÄNDERN

Vorschau

Auf diese Weise können Sie diese Verknüpfung verwenden, um eine bestimmte Umgebung zu öffnen, wenn Sie darauf klicken. Sie können sie auch zu Ihrem Pfad hinzufügen. Jetzt können Sie sie über die Windows-Ausführungsbox ausführen, indem Sie einfach den Namen der Verknüpfung eingeben.

Kream
quelle
0

Erstellen Sie unter Windows eine Batchdatei mit der folgenden Zeile:

start cmd /k "C:\Anaconda3\Scripts\activate.bat C:\Anaconda3 & activate env"

Der erste in Anführungszeichen enthaltene Pfad ist der Pfad zur Datei activate.bat in der Anaconda-Installation. Der Pfad auf Ihrem System kann unterschiedlich sein. Der Name nach dem Aktivierungsbefehl sollte natürlich Ihr gewünschter Umgebungsname sein.

Führen Sie dann die Batchdatei aus, wenn Sie eine Anaconda-Eingabeaufforderung öffnen müssen.

Fijoy Vadakkumpadan
quelle
0

Laden Sie Ihre "Basis" -Umgebung - als OPs py34-, wenn Sie Ihr Terminal / Ihre Shell laden.

Wenn Sie Bash verwenden, setzen Sie die Zeile:

conda activate py34

in Ihrem .bash_profile(oder .bashrc):

$ echo 'conda activate py34' >> ~/.bash_profile

Jedes Mal, wenn Sie ein neues Terminal betreiben, py34wird die Conda-Umgebung geladen.

Brandt
quelle