Jak zaktualizować do Pythona 3.6 z Conda?

171

Jestem nowy w zarządzaniu pakietami Conda i chcę uzyskać najnowszą wersję Pythona, aby używać f-stringów w moim kodzie. Obecnie moja wersja to ( python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

Jak zaktualizować do Pythona 3.6?

Aryaman
źródło
Wydaje mi się, że druga odpowiedź jest lepszą odpowiedzią, zwłaszcza dla tych, którzy mają środowisko „główne” / „domyślne”, w którym najnowsze i najlepsze są stale aktualizowane.
ericmjl

Odpowiedzi:

248

Anaconda nie zaktualizowała wewnętrznie Pythona do wersji 3.6.

a) Metoda 1

  1. Jeśli chcesz zaktualizować, wpisz conda update python
  2. Aby zaktualizować typ anakondy conda update anaconda
  3. Jeśli chcesz dokonać aktualizacji między głównymi wersjami Pythona, takimi jak 3.5 do 3.6, będziesz musiał zrobić

    conda install python=$pythonversion$

b) Metoda 2 - Utwórz nowe środowisko (Lepsza metoda)

conda create --name py36 python=3.6

c) Aby uzyskać absolutnie najnowszy Python (3.6.5 w momencie pisania)

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

Możesz to wszystko zobaczyć stąd

Odnieś się również do tego, aby wymusić aktualizację

EDYCJA: Anaconda ma teraz tutaj wersję Pythona 3.6

Moulick
źródło
18
O ile Continuum nie zmieniło sposobu działania Conda, nie można aktualizować głównych wersji Pythona przez conda update python. Zobacz tutaj: conda.pydata.org/docs/py2or3.html#update-or-upgrade-python
darthbith
14
conda install python = $ pythonversion $ np. conda install python = 3.6
Tim Richardson
11
conda update pythonwłaśnie zabrał mnie z 3.6.5 do 3.7.0. Schludny!
fredrik
W odpowiedzi jest literówka, metoda 1.3. Powinien zawierać conda install python=$pythonversion$pojedynczy znak równości.
eze1981,
Metoda FYI a) działa również w przypadku zmiany między różnymi wersjami Pythona, o ile nie zrywa żadnych zależności w venv
Spcogg drugiego
41

Utworzenie nowego środowiska spowoduje zainstalowanie Pythona 3.6:

$ 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 
David Stansby
źródło
2
Jeśli twoja instalacja Conda jest przeznaczona dla Pythona 2.7, to conda create utworzy wersję 2.7. zmiana polecenia na conda create --name 3point6 python=3(dodanie =3na końcu) tworzy wersję python3.
Jonah Graham
1
To rzeczywiście będzie. Zmieniłem odpowiedź, aby określić Python 3.6!
David Stansby
25

Znalazłem tę stronę ze szczegółowymi instrukcjami aktualizacji Anacondy do ważniejszej nowszej wersji Pythona (z Anacondy 4.0+). Pierwszy,

conda update conda
conda remove argcomplete conda-manager

Miałem też do conda removeniektórych paczek nie na oficjalnej liście:

  • backports_abc
  • piękna zupa
  • blaze-core

W zależności od pakietów zainstalowanych w systemie możesz otrzymać dodatkowe UnsatisfiableErrorbłędy - po prostu dodaj te pakiety do listy usuniętych. Następnie zainstaluj wersję Pythona,

conda install python==3.6

co trochę trwa, po czym komunikat wskazał conda install anaconda-client, więc tak zrobiłem

conda install anaconda-client

który powiedział, że już tam jest. Wreszcie, postępując zgodnie ze wskazówkami,

conda update anaconda

Zrobiłem to w wierszu poleceń systemu Windows 10, ale w systemie Mac OS X powinno być podobnie.

Christian Tremblay
źródło
18

W przeszłości próbowanie aktualizacji na miejscu było dla mnie dość trudne.

Uwaga: mój przypadek użycia dla Anaconda to środowisko Pythona typu wszystko w jednym. Nie przejmuję się oddzielnymi środowiskami wirtualnymi. Jeśli używasz condado tworzenia środowisk, może to być destrukcyjne, ponieważ condatworzy środowiska z twardymi linkami w twoim Anaconda/envskatalogu.

Jeśli więc używasz środowisk, możesz najpierw wyeksportować swoje środowiska . Po aktywowaniu środowiska zrób coś takiego:

conda env export > environment.yml

Po utworzeniu kopii zapasowej środowisk (jeśli to konieczne), możesz usunąć starą Anacondę (bardzo łatwo jest odinstalować Anacondę):

$ rm -rf ~/anaconda3/

i zastąp go, pobierając nową Anacondę, np. Linux, 64 bit:

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

( zobacz tutaj, aby zobaczyć nowsze ),

a następnie wykonuję to:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 
Aaron Hall
źródło
11

Używam Mac OS Mojave

Te 4 kroki zadziałały dla mnie.

  1. conda update conda
  2. conda install python=3.6
  3. conda install anaconda-client
  4. conda update anaconda
Abdul Rahman Hafez
źródło
0

Najlepsza metoda, jaką znalazłem:

source activate old_env
conda env export > old_env.yml

Następnie przetwórz to za pomocą czegoś takiego:

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)

następnie edytuj ręcznie pierwszą ( name: ...) i ostatnią linię ( prefix: ...), aby odzwierciedlić nową nazwę środowiska i uruchom:

conda env create -f new_env.yml

może zajść potrzeba ręcznego usunięcia lub zmiany numeru PIN wersji kilku pakietów, dla których przypięta wersja old_envjest niezgodna lub brakująca w nowej wersji Pythona.

Chciałbym, żeby był wbudowany, łatwiejszy sposób ...

Alex
źródło