Wie aktualisiere ich mit conda auf Python 3.6?


171

Ich bin neu in der Conda-Paketverwaltung und möchte die neueste Version von Python erhalten, um F-Strings in meinem Code zu verwenden. Derzeit ist meine Version ( python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

Wie würde ich auf Python 3.6 aktualisieren?


Die zweite Antwort ist meiner Meinung nach die bessere Antwort, insbesondere für diejenigen, die eine "Master" / "Standard" -Umgebung haben, in der die neuesten und besten ständig aktualisiert werden.
Ericmjl

Antworten:


248

Anaconda hat Python intern nicht auf 3.6 aktualisiert.

a) Methode 1

  1. Wenn Sie aktualisieren möchten, geben Sie ein conda update python
  2. Um den Anakonda-Typ zu aktualisieren conda update anaconda
  3. Wenn Sie ein Upgrade zwischen einer größeren Python-Version wie 3.5 auf 3.6 durchführen möchten, müssen Sie dies tun

    conda install python=$pythonversion$

b) Methode 2 - Erstellen Sie eine neue Umgebung (bessere Methode)

conda create --name py36 python=3.6

c) Um die absolut neueste Python zu erhalten (3.6.5 zum Zeitpunkt des Schreibens)

conda create --name py365 python=3.6.5 --channel conda-forge

Sie können dies alles von hier aus sehen

Beachten Sie auch dies, um ein Upgrade zu erzwingen

BEARBEITEN: Anaconda hat jetzt eine Python 3.6-Version hier


18
Solange Continuum die Funktionsweise von conda nicht geändert hat, können Sie wichtige Python-Versionen nicht um aktualisieren conda update python. Siehe hier: conda.pydata.org/docs/py2or3.html#update-or-upgrade-python
Darthbith

14
conda install python = $ pythonversion $ zB conda install python = 3.6
Tim Richardson

11
conda update pythonhabe mich gerade von 3.6.5 auf 3.7.0 gebracht. Ordentlich!
Fredrik

Die Antwort, Methode 1.3, enthält einen Tippfehler. Es sollte conda install python=$pythonversion$mit einem einzigen Gleichheitszeichen sein.
eze1981

Die FYI-Methode a) funktioniert auch für den Wechsel zwischen verschiedenen Python-Versionen, solange sie keine Abhängigkeiten innerhalb des Venv aufhebt
Spcogg am zweiten

41

Durch das Erstellen einer neuen Umgebung wird Python 3.6 installiert:

$ conda create --name 3point6 python=3.6
Fetching package metadata .......
Solving package specifications: ..........

Package plan for installation in environment /Users/dstansby/miniconda3/envs/3point6:

The following NEW packages will be INSTALLED:

    openssl:    1.0.2j-0     
    pip:        9.0.1-py36_1 
    python:     3.6.0-0      
    readline:   6.2-2        
    setuptools: 27.2.0-py36_0
    sqlite:     3.13.0-0     
    tk:         8.5.18-0     
    wheel:      0.29.0-py36_0
    xz:         5.2.2-1      
    zlib:       1.2.8-3 

2
Wenn Ihre Conda-Installation für Python 2.7 ist, erstellt conda create eine 2.7-Version. Durch Ändern des Befehls in conda create --name 3point6 python=3(Hinzufügen =3am Ende) wird eine Python3-Version erstellt.
Jonah Graham

1
Es wird in der Tat. Ich habe meine Antwort geändert, um Python 3.6 anzugeben!
David Stansby

25

Ich habe diese Seite mit detaillierten Anweisungen zum Upgrade von Anaconda auf eine neuere Version von Python (von Anaconda 4.0+) gefunden. Zuerst,

conda update conda
conda remove argcomplete conda-manager

Ich musste auch conda removeeinige Pakete nicht auf der offiziellen Liste:

  • backports_abc
  • schöne Suppe
  • Blaze-Core

Abhängig von den auf Ihrem System installierten Paketen können zusätzliche UnsatisfiableErrorFehler auftreten. Fügen Sie diese Pakete einfach zur Entfernungsliste hinzu. Installieren Sie als Nächstes die Version von Python.

conda install python==3.6

Das dauert eine Weile, danach wird eine Nachricht angezeigt conda install anaconda-client, also habe ich es getan

conda install anaconda-client

was sagte, es ist schon da. Schließlich folgen Sie den Anweisungen,

conda update anaconda

Ich habe dies an der Windows 10-Eingabeaufforderung getan, aber unter Mac OS X sollten die Dinge ähnlich sein.


18

In der Vergangenheit war es für mich ziemlich schwierig, ein direktes Upgrade durchzuführen.

Hinweis: Mein Anwendungsfall für Anaconda ist eine All-in-One-Python-Umgebung. Ich kümmere mich nicht um separate virtuelle Umgebungen. Wenn Sie condaUmgebungen erstellen, kann dies destruktiv sein, da condaUmgebungen mit festen Links in Ihrem Anaconda/envsVerzeichnis erstellt werden.

Wenn Sie also Umgebungen verwenden, möchten Sie möglicherweise zuerst Ihre Umgebungen exportieren . Führen Sie nach der Aktivierung Ihrer Umgebung Folgendes aus:

conda env export > environment.yml

Nach dem Sichern Ihrer Umgebungen (falls erforderlich) können Sie Ihre alte Anaconda entfernen (es ist sehr einfach, Anaconda zu deinstallieren):

$ rm -rf ~/anaconda3/

und ersetzen Sie es durch Herunterladen der neuen Anaconda, z. B. Linux, 64-Bit:

$ cd ~/Downloads
$ wget https://repo.continuum.io/archive/Anaconda3-4.3.0-Linux-x86_64.sh 

( siehe hier für eine neuere ),

und dann ausführen:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 

11

Ich benutze einen Mac OS Mojave

Diese 4 Schritte haben bei mir funktioniert.

  1. conda update conda
  2. conda install python=3.6
  3. conda install anaconda-client
  4. conda update anaconda

0

Beste Methode, die ich gefunden habe:

source activate old_env
conda env export > old_env.yml

Dann verarbeiten Sie es mit so etwas:

with open('old_env.yml', 'r') as fin, open('new_env.yml', 'w') as fout:
    for line in fin:
        if 'py35' in line:  # replace by the version you want to supersede
            line = line[:line.rfind('=')] + '\n'
        fout.write(line)

Bearbeiten Sie dann manuell die erste ( name: ...) und letzte Zeile ( prefix: ...), um Ihren neuen Umgebungsnamen wiederzugeben, und führen Sie Folgendes aus:

conda env create -f new_env.yml

Möglicherweise müssen Sie den Versions-Pin einiger Pakete, für die die angeheftete Version von old_envinkompatibel ist oder für die neue Python-Version fehlt, manuell entfernen oder ändern .

Ich wünschte, es gäbe einen eingebauten, einfacheren Weg ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.