Wie kann ich Anaconda aktualisieren?

Ich habe Anaconda auf meinem Computer installiert und würde es gerne aktualisieren. Im Navigator sehe ich, dass es mehrere einzelne Pakete gibt, die aktualisiert werden können, aber auch ein Anaconda-Paket, das manchmal eine Versionsnummer hat und manchmal custom sagt. Wie kann ich vorgehen?

Was 95% der Leute wirklich wollen

In den meisten Fällen ist das, was Sie tun wollen, wenn Sie sagen, dass Sie Anaconda aktualisieren wollen, die Ausführung des Befehls:

conda update --all

(Aber das sollte vorher mit conda update -n root conda gemacht werden, damit Sie die neueste conda Version installiert haben)

Dies wird alle Pakete in der aktuellen Umgebung auf die neueste Version aktualisieren -- mit dem Kleingedruckten, dass es eine ältere Version einiger Pakete verwenden kann, um Abhängigkeitsbedingungen zu erfüllen (oft wird dies nicht notwendig sein und wenn es notwendig ist, wird der Paketplan-Löser sein Bestes tun, um die Auswirkungen zu minimieren).

Dies muss von der Kommandozeile aus ausgeführt werden, und der beste Weg dorthin führt über den Anaconda Navigator, dann die Registerkarte "Umgebungen", dann klicken Sie auf das Dreieck neben der root Umgebung und wählen "Terminal öffnen":

Dieser Vorgang aktualisiert nur die eine ausgewählte Umgebung (in diesem Fall die "Root"-Umgebung). Wenn Sie andere Umgebungen aktualisieren möchten, können Sie den obigen Vorgang wiederholen, aber klicken Sie zuerst auf die gewünschte Umgebung. Wenn sie ausgewählt ist, erscheint rechts eine dreieckige Markierung (siehe Bild oben, Schritt 3). Sie können auch über die Befehlszeile den Namen der Umgebung (-n envname) oder den Pfad (-p /path/to/env) eingeben, um zum Beispiel die Umgebung dspyr aus dem obigen Screenshot zu aktualisieren:

conda update -n dspyr --all

Einzelne Pakete aktualisieren

Wenn Sie nur ein einzelnes Paket aktualisieren möchten, klicken Sie einfach auf den blauen Pfeil oder die blaue Versionsnummer im Navigator, z.B. für astroid oder astropy im obigen Screenshot, und dies wird diese Pakete für ein Upgrade markieren. Wenn Sie fertig sind, müssen Sie auf die Schaltfläche "Anwenden" klicken:

Oder über die Befehlszeile:

conda update astroid astropy

Aktualisieren nur der Pakete in der Standard Anaconda Distribution

Wenn Sie sich nicht um Paketversionen kümmern und nur "den neuesten Satz aller Pakete in der Standard-Anaconda-Distribution wollen, solange sie zusammen funktionieren", dann sollten Sie einen Blick auf diese gist werfen.

Warum es fast immer eine schlechte Idee ist, das Anaconda-Paket zu aktualisieren

In den meisten Fällen wird das Aktualisieren des Anaconda-Pakets in der Paketliste ein überraschendes Ergebnis haben: Sie können viele Pakete tatsächlich downgraden (in der Tat ist dies wahrscheinlich, wenn die Version als custom angegeben wird). Der Gist oben enthält Details.

conda-Umgebungen ausnutzen

Ihre `root'-Umgebung ist wahrscheinlich kein guter Ort, um zu versuchen, einen exakten 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 exakten Satz von Paketen benötigen, dann erstellen Sie eine conda-Umgebung, die diese enthält. Dank des conda-Paket-Caches und der Art und Weise, wie Dateiverknüpfungen verwendet werden, ist dies typischerweise 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 wird bei der Aktualisierung von Paketen helfen, die von PyPI über pip installiert wurden, oder von Paketen, die mit python setup.py install installiert wurden. conda list wird Ihnen einige Hinweise auf die pip-basierten Python-Pakete geben, 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 so ziemlich genau die gleiche Geschichte, mit der Ausnahme, dass Sie möglicherweise nicht in der Lage sind, die root-Umgebung zu aktualisieren, wenn sie von jemand anderem installiert wurde (z.B. nach /opt/anaconda/latest). Wenn Sie nicht in der Lage sind, die Umgebungen zu aktualisieren, die Sie verwenden, sollten Sie in der Lage sein, zu klonen und dann zu aktualisieren:

conda create -n myenv --clone root
conda update -n myenv --all
Kommentare (9)

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

Daher sollten Sie conda zum Upgrade verwenden, wie in den [offiziellen Dokumenten] (https://docs.anaconda.com/anaconda/install/update-version) beschrieben:

conda update conda
conda update anaconda

Wenn Sie unter Windows eine "für alle Benutzer" Installation durchgeführt haben, kann es notwendig sein, Anaconda von einer Eingabeaufforderung mit Administratorrechten auszuführen.

Dadurch wird der Fehler vermieden:

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

Kommentare (0)

Öffnen Sie die Eingabeaufforderung "command oder conda" und führen Sie sie aus:

conda update conda
conda update anaconda

Es empfiehlt sich, beide Befehle zweimal (nacheinander) auszuführen, um sicherzustellen, dass alle grundlegenden Dateien aktualisiert werden.

Dies sollte Sie wieder auf die neuesten 'releases' bringen, die Pakete enthalten, die von den Leuten bei Continuum ausgewählt wurden, um gut zusammenzuarbeiten.

Wenn Sie die letzte Version eines jeden Pakets ausführen wollen (dies kann zu einer instabilen Umgebung führen):

conda update --all 

Ich hoffe, das hilft.

Quellen:

Kommentare (4)