Wie aktualisiere ich Anaconda?

259

Ich habe Anaconda auf meinem Computer installiert und möchte es aktualisieren. In Navigator kann ich sehen, dass es mehrere einzelne Pakete gibt, die aktualisiert werden können, aber auch ein anacondaPaket, das manchmal eine Versionsnummer hat und manchmal sagt custom. Wie gehe ich vor?

Geben Sie hier die Bildbeschreibung ein

IanSR
quelle
1
Die meisten Antworten deuten darauf hin conda update [-n root] -v anaconda, aber es bietet an, meine zu DOWNGRADIEREN python: 3.7.0-hc167b69_0 --> 3.6.6-hc167b69_0. Scheint sehr kaputt zu sein.
smci

Antworten:

417

Was 95% der Menschen tatsächlich wollen

In den meisten Fällen möchten Sie den folgenden Befehl ausführen, wenn Sie sagen, dass Sie Anaconda aktualisieren möchten:

conda update --all

(Dies sollte jedoch vorangestellt werden, conda update -n root condadamit Sie die neueste condaVersion installiert haben.)

Dadurch werden alle Pakete in der aktuellen Umgebung auf die neueste Version aktualisiert. Das Kleingedruckte ist, dass möglicherweise eine ältere Version einiger Pakete verwendet wird, um Abhängigkeitsbeschränkungen zu erfüllen (häufig ist dies nicht erforderlich und wenn dies erforderlich ist) Der Paketplan-Löser wird sein Bestes tun, um die Auswirkungen zu minimieren.

Dies muss über die Befehlszeile ausgeführt werden. Der beste Weg dorthin führt über Anaconda Navigator, dann über die Registerkarte "Umgebungen". Klicken Sie dann auf das Dreieck neben der rootUmgebung und wählen Sie "Terminal öffnen":

Öffnen Sie das Terminal im Navigator

Dieser Vorgang aktualisiert nur die eine ausgewählte Umgebung (in diesem Fall die rootUmgebung). Wenn Sie andere Umgebungen haben, die Sie aktualisieren möchten, können Sie den obigen Vorgang wiederholen, aber zuerst auf die Umgebung klicken. Wenn es ausgewählt ist, befindet sich rechts eine dreieckige Markierung (siehe Bild oben, Schritt 3). Oder Sie können über die Befehlszeile den Umgebungsnamen ( -n envname) oder den Pfad ( -p /path/to/env) angeben, um beispielsweise Ihre dspyrUmgebung anhand des obigen Screenshots zu aktualisieren :

conda update -n dspyr --all

Aktualisieren Sie einzelne Pakete

Wenn Sie nur ein einzelnes Paket aktualisieren möchten, klicken Sie einfach in Navigator auf den blauen Pfeil oder die blaue Versionsnummer, z. B. für astroidoder astropyim obigen Screenshot. Dadurch werden diese Pakete für ein Upgrade markiert. Wenn Sie fertig sind, müssen Sie auf die Schaltfläche "Übernehmen" klicken:

Bewerben Sie sich, um einzelne Pakete zu aktualisieren

Oder über die Kommandozeile:

conda update astroid astropy

Aktualisieren nur der Pakete in der Standard-Anaconda-Distribution

Wenn Sie sich nicht für Paketversionen interessieren und nur "den neuesten Satz aller Pakete in der Standard-Anaconda-Distribution, solange sie zusammenarbeiten" möchten, sollten Sie sich diesen Kern ansehen .

Warum das Aktualisieren des Anaconda-Pakets fast immer eine schlechte Idee ist

In den meisten Fällen führt das Aktualisieren des Anaconda-Pakets in der Paketliste zu einem überraschenden Ergebnis: Sie können tatsächlich viele Pakete herabstufen (dies ist wahrscheinlich, wenn die Version als angegeben wird custom). Das Wesentliche oben enthält Details.

Nutzen Sie Conda-Umgebungen

Ihre rootUmgebung ist wahrscheinlich kein guter Ort, um einen genauen Satz von Paketen zu verwalten: Es wird ein dynamischer Arbeitsbereich sein, in dem neue Pakete installiert und Pakete zufällig aktualisiert werden. Wenn Sie einen genauen Satz von Paketen benötigen, erstellen Sie eine Conda-Umgebung, um diese zu speichern. Dank des Conda-Paket-Cache und der Art und Weise, wie die Dateiverknüpfung verwendet wird, ist dies normalerweise i) schnell und ii) verbraucht sehr wenig zusätzlichen Speicherplatz. Z.B

conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk

Die Conda-Dokumentation enthält weitere Details und Beispiele.

Pip, PyPI und Setuptools?

Nichts davon hilft beim Aktualisieren von Paketen, die von PyPI über pipoder von mit installierten Paketen installiert wurden python setup.py install. conda listgibt Ihnen einige Hinweise zu den pip-basierten Python-Paketen, die Sie in einer Umgebung haben, aber es wird nichts Besonderes tun, um sie zu aktualisieren.

Kommerzielle Nutzung von Anaconda oder Anaconda Enterprise

Es ist ziemlich genau die gleiche Geschichte, mit der Ausnahme, dass Sie die rootUmgebung möglicherweise nicht aktualisieren können, wenn sie von einer anderen Person installiert wurde (sagen wir zu /opt/anaconda/latest). Wenn Sie die von Ihnen verwendeten Umgebungen nicht aktualisieren können, sollten Sie in der Lage sein, Folgendes zu klonen und anschließend zu aktualisieren:

conda create -n myenv --clone root
conda update -n myenv --all
IanSR
quelle
10
Ich werde immer noch conda update anacondafür zukünftige Updates gehen. Nur tat conda update --allund konnte nicht Navigator starten danach wegen eines PySide ModuleNotFoundErrordem ich konnte es einfach nicht lösen. Auch nach dem Downgrade. Also musste ich Anaconda neu installieren und meine Umgebungen neu einrichten. Und das ist das zweite Mal, dass mir das passiert, obwohl ich nie Probleme damit hatte conda update anaconda. Auch wenn das bedeutet, dass meine Pakete nicht sehr aktuell sind (die Distribution wird immer noch ziemlich häufig aktualisiert: docs.anaconda.com/anaconda/release-notes ) Ich bevorzuge ein stabiles System
MattSchmatt
4
@MattSchmatt stellen Sie sicher, dass Sie dies conda update condaauch tun . Conda hat sich im vergangenen Jahr erheblich weiterentwickelt, und insbesondere hatten wir Ende September 2017 eine Veröffentlichung, die viele Verbesserungen einführte. Wenn conda update --allPausen Dinge (die, historisch gesehen , es war so gut wie sicher zu tun) , dann ist dies ein Fehler , den Sie zu dem Conda GitHub Bugtracker melden sollte - heute , dass der Betrieb nicht alle vorhandenen Komponenten brechen (mit der Maßgabe , Conda Bedürfnisse bis zu Datum).
IanSR
7
Ich musste conda update -n root condastatt der oben genannten tun , damit es funktionierte.
Lucas
9
Das conda update --allwollen 95% der Menschen nicht. Dies kann zu einer instabilen Umgebung führen. Die Antwort von user3056882 ist sicherer.
Gagarine
3
conda update --allfehlgeschlagen für mich mit einem Fehler "Erlaubnis verweigert". Hat es mit Administratorrechten erfolgreich ausgeführt. So führen Sie die Ausführung mit Administratorrechten aus: Start> Anaconda3> Anaconda-Eingabeaufforderung> Rechtsklick> Mehr> Als Administrator ausführen.
BabarBaig
100

Wenn Sie versuchen, Ihre Anaconda-Version auf eine neue zu aktualisieren, werden Sie feststellen, dass das Ausführen des neuen Installationsprogramms nicht funktioniert, da das Installationsverzeichnis nicht leer ist.

Sie sollten also conda verwenden, um ein Upgrade durchzuführen, wie in den offiziellen Dokumenten beschrieben :

conda update conda
conda update anaconda


Wenn Sie unter Windows eine Installation "für alle Benutzer" durchgeführt haben, muss möglicherweise eine Anaconda-Eingabeaufforderung mit Administratorrechten ausgeführt werden.

Klicken Sie einfach mit der rechten Maustaste auf Anaconda Prompt im Startmenü

Dies verhindert den Fehler:

FEHLER conda.core.link:_execute(502): Beim Deinstallieren des Pakets 'defaults :: conda-4.5.4-py36_0' ist ein Fehler aufgetreten. PermissionError (13, 'Zugriff verweigert')

Cardin Lee JH
quelle
46

Öffnen Sie "Befehl oder Conda-Eingabeaufforderung" und führen Sie Folgendes aus:

conda update conda
conda update anaconda

Es ist eine gute Idee, beide Befehle zweimal (nacheinander) auszuführen, um sicherzustellen, dass alle Basisdateien aktualisiert werden.

Dies sollte Sie auf die neuesten "Releases" zurückführen, die Pakete enthalten, die von den Mitarbeitern von Continuum ausgewählt wurden, um gut zusammenzuarbeiten.

Wenn Sie möchten, dass die letzte Version jedes Pakets ausgeführt wird (dies kann zu einer instabilen Umgebung führen ):

conda update --all 

Hoffe das hilft.

Quellen:

H. Latte
quelle
10
Wenn Sie eine stabile Umgebung der neuesten Version jedes Pakets vorziehen, überspringen Sie Schritt 4. Sie conda update anacondasollten wieder auf eine der 'Versionen' zurückgreifen, die Pakete enthält, die von den Mitarbeitern von Continuum ausgewählt wurden, um gut zusammenzuarbeiten.
Rudolfbyker
Danke rudolfbyker. Ich habe die Antwort bearbeitet, um Ihren Kommentar wiederzugeben.
H. Latte
Wenn Sie den Fehler "Paket nicht installiert" erhalten, versuchen Sie es conda install anaconda.
Shital Shah
Ich aktualisiere conda und dann funktionieren alle meine Pakete nicht mehr. Ich weiß nicht warum, aber ich denke, Ihre Lösung ist keine gute Idee, da conda mit dieser Art des Upgrades nicht stabil ist. Hier ist eine Möglichkeit zum Rollen zurück
Travis
6

Wenn Sie Probleme haben, z. B. von 3.3.x auf 4.x zu gelangen (conda update conda "funktioniert nicht", um zur nächsten Version zu gelangen), versuchen Sie es genauer:

conda install conda=4.0 (or conda install anaconda=4.0)

https://www.anaconda.com/blog/developer-blog/anaconda-4-release/

Sie sollten wissen, was Sie tun, da die Conda aufgrund der erzwungenen Installation brechen kann. Wenn Sie mehr Flexibilität / Sicherheit wünschen, können Sie pkg-manager wie nix (-pkgs) [mit nix-shell] / NixOS verwenden.

Vor dem Gesetz
quelle
Vielleicht, aber würden Sie das nicht als Kludge betrachten?
smci
Die Version "Kontinuität" ist ein Standard, z. B. in der (Web-) Entwicklung. Wie immer sollten Sie alle mit den aktualisierten Versionen neu erstellen, wenn Sie möchten, dass alles neu definiert und bewertet wird. Im Allgemeinen sollte ein "conda update --all" mit den Updates ../conda/../pinned Datei ebenfalls ordnungsgemäß funktionieren (! Achten Sie auf zusätzliche Pip-Installationen!).
InLaw
2
Wenn wir dem Updater manuell mitteilen müssen, auf welche bestimmte Version aktualisiert werden soll, handelt es sich nicht mehr um einen Updater, sondern nur um ein defektes Installationsprogramm mit einer hübschen Benutzeroberfläche. Im Allgemeinen conda update --allbricht alles, wie ihre eigenen FAQ sagt, und in meinem Fall bietet es fröhlich an, meine Python von 3.7.0 auf 3.6.6 herunterzustufen (obwohl es weiß, dass 3.7.1 verfügbar ist)
smci
Das ist Ihre Meinung zu einem Installer, aber es ist ein STANDARD in der IT (mit irgendeinem Grund dahinter). Auch hier kommt es vor allem auf Ihre angeheftete Datei an UND ob Sie pkgs auch über PIP installiert haben! In Bezug auf Ihren Fall: Wenn Sie Pakete haben, die nicht verfügbar oder mit Python 3.7.x kompatibel sind, wird die Python-Version mit den Einschränkungen aller Pakete in Ihrer Umgebung optimal angepasst. Das ist der Grund, warum es "conda" gibt.
InLaw
Was ist Ihr Grund für die Verwendung von conda (wenn nicht für die Integritätsprüfung / Herabstufung, über die Sie sich beschweren)?
InLaw
6

In der offiziellen Anaconda-Dokumentation wird Folgendes empfohlen:

conda update conda 
conda update anaconda=2020.02

Wenn die zweite Zeile einen Fehler auslöst (Tippfehler in den Dokumenten?), Funktionierte dies hier:

conda install anaconda=2020.02

(Alle Versionsspezifizierer finden Sie hier )

Der Befehl wird auf eine bestimmte Version des Anaconda-Metapakets aktualisiert.

Dies ist imho, was 95% der Anaconda-Benutzer wollen. Einfach ein Upgrade auf die neueste Version des Anaconda-Metapakets (zusammengestellt und getestet von den Anaconda-Händlern) und ohne Rücksicht auf den Aktualisierungsstatus einzelner Pakete (die von ausgegeben werden conda update --all).

MattSchmatt
quelle
@Arrow_Raider Bezogen auf den conda update ...Tippfehler? Einverstanden.
MattSchmatt
5

Hier ist die beste Vorgehensweise (nach meiner bescheidenen Erfahrung). Durch Auswahl dieser vier Pakete werden auch alle anderen Abhängigkeiten auf die entsprechenden Versionen aktualisiert, damit Sie Ihre Umgebung konsistent halten können. Letzteres ist ein häufiges Problem, das andere in früheren Antworten zum Ausdruck gebracht haben. Diese Lösung benötigt das Terminal nicht.

Aktualisieren und Aktualisieren der Best Practice für Anaconda3 oder Anaconda2

Volles Array
quelle
Danke, hat mir geholfen!
Ilan Aizelman WS
3

Öffnen Sie Anaconda cmd im Basismodus:

Verwenden Sie dann conda update conda , um Anaconda zu aktualisieren

Sie können dann conda update --all verwenden , um alle Anforderungen für Anaconda zu aktualisieren

conda update conda  
conda update --all  
Farshad
quelle
2

Öffnen Sie auf dem Mac das Terminal und führen Sie die folgenden 2 Befehle aus.

conda update conda
conda update anaconda

Stellen Sie sicher, dass Sie jeden Befehl mehrmals ausführen, um auf die aktuelle Version zu aktualisieren.

Ajay Sant
quelle
7
mehrfach? Ist das sinnvoll?
Deepak
2
Wenn Sie die Befehle nur einmal ausführen, wird sie meiner Erfahrung nach nicht auf die neuesten Versionen der Python-Pakete aktualisiert. Ich schlage daher vor, es mehrmals auszuführen.
Ajay Sant
Dies ist ein Duplikat einer anderen Antwort hier auf derselben Seite: stackoverflow.com/a/46842054/109618
David J.
2

Ich verwende Windows 10. Das Folgende aktualisiert alles und installiert auch einige neue Pakete, einschließlich eines Python-Updates (für mich war es 3.7.3).

Versuchen Sie in der Shell Folgendes (ändern Sie unbedingt, wo Ihre Anaconda3-Daten installiert sind). Es dauert einige Zeit, um alles zu aktualisieren.

conda update --prefix X:\XXXXData\Anaconda3 anaconda
D Jacobson
quelle
1

Führen Sie aus, um Ihre installierte Version auf die neueste Version zu aktualisieren, z. B. 2019.07

conda install anaconda=2019.07

In den meisten Fällen kann diese Methode Ihre Anforderungen erfüllen und Abhängigkeitsprobleme vermeiden

QaraQoyunlu
quelle
0
conda create -n py37 -c anaconda anaconda=5.3.1
conda env export -n py37 --file env.yaml

Suchen Sie die Datei env.yaml in C: \ Windows \ System32 und führen Sie den Befehl cmd als Administrator aus

conda env update -n root -f env.yaml  

dann funktioniert es!

leeningzzu
quelle
-6

Dies kann nur Python aktualisieren:

conda update python
eric xu
quelle