Как мне перейти на Python 3.6 с помощью conda?


172

Я новичок в управлении пакетами Conda и хочу, чтобы последняя версия Python использовала f-строки в моем коде. В настоящее время моя версия ( python -V):

Python 3.5.2 :: Anaconda 4.2.0 (x86_64)

Как мне перейти на Python 3.6?


Второй ответ, я думаю, является лучшим ответом, особенно для тех, у кого есть среда «master» / «default», в которой постоянно обновляется новейшее и лучшее.
ericmjl

Ответы:


250

Анаконда не обновила Python внутри до 3.6.

а) Способ 1

  1. Если вы хотите обновить, вы напечатаете conda update python
  2. Для обновления типа анаконда conda update anaconda
  3. Если вы хотите выполнить обновление между основной версией Python, например, с 3.5 до 3.6, вам придется

    conda install python=$pythonversion$

б) метод 2 - создать новую среду (лучший метод)

conda create --name py36 python=3.6

в) Получить абсолютный последний питон (3.6.5 на момент написания)

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

Вы можете увидеть все это здесь

Кроме того, обратитесь к этому для принудительного обновления

РЕДАКТИРОВАТЬ: Anaconda теперь имеет версию Python 3.6 здесь


18
Если Continuum не изменил работу conda, вы не можете обновить основные версии Python conda update python. Смотрите здесь: conda.pydata.org/docs/py2or3.html#update-or-upgrade-python
darthbith

14
conda install python = $ pythonversion $ например, conda install python = 3.6
Тим Ричардсон,

11
conda update pythonпросто взял меня с 3.6.5 до 3.7.0. Ухоженная!
Фредрик

В ответе приведена опечатка, метод 1.3. Это должно быть conda install python=$pythonversion$с одним знаком равенства.
eze1981

Метод FYI a) также работает для переключения между различными версиями python, если он не нарушает никаких зависимостей в пределах venv
Spcogg второе

41

Создание новой среды установит Python 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 

2
Если ваша установка conda для Python 2.7, то conda create создаст версию 2.7. изменение команды conda create --name 3point6 python=3(добавление =3в конце) делает версию Python3.
Джона Грэм

1
Так и будет. Я изменил свой ответ, чтобы указать Python 3.6!
Дэвид

26

Я нашел эту страницу с подробными инструкциями по обновлению Anaconda до более новой версии Python (от Anaconda 4.0+). Первый,

conda update conda
conda remove argcomplete conda-manager

Мне также пришлось conda removeнесколько пакетов не в официальном списке:

  • backports_abc
  • красивый суп
  • полыхать-жильный

В зависимости от пакетов, установленных в вашей системе, вы можете получить дополнительные UnsatisfiableErrorошибки - просто добавьте эти пакеты в список удаления. Далее установите версию Python,

conda install python==3.6

что занимает некоторое время, после чего сообщение указывается conda install anaconda-client, так что я сделал

conda install anaconda-client

который сказал, что это уже там. Наконец, следуя указаниям,

conda update anaconda

Я сделал это в командной строке Windows 10, но в Mac OS X все должно быть похоже.


18

В прошлом мне было довольно сложно пытаться обновить на месте.

Примечание: мой вариант использования для Anaconda - это среда Python «все в одном». Я не беспокоюсь об отдельных виртуальных средах. Если вы используете condaдля создания сред, это может быть разрушительным, потому что condaсоздает среды с жесткими ссылками внутри вашего Anaconda/envsкаталога.

Поэтому, если вы используете среды, вы можете сначала экспортировать свои среды . После активации вашей среды сделайте что-то вроде:

conda env export > environment.yml

После резервного копирования вашей среды (при необходимости) вы можете удалить старую Anaconda (удалить Anaconda очень просто):

$ rm -rf ~/anaconda3/

и замените его, загрузив новую Anaconda, например, Linux, 64 бит:

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

( см. здесь для более недавнего ),

а затем выполнить его:

$ bash Anaconda3-4.3.0-Linux-x86_64.sh 


0

Лучший метод, который я нашел:

source activate old_env
conda env export > old_env.yml

Затем обработайте это примерно так:

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)

затем отредактируйте вручную first ( name: ...) и last line ( prefix: ...), чтобы отразить имя вашей новой среды, и запустите:

conda env create -f new_env.yml

вам может потребоваться удалить или вручную изменить вывод версии нескольких пакетов, для которых закрепленная версия old_envпризнана несовместимой или отсутствует для новой версии Python.

Хотелось бы, чтобы был встроенный, более простой способ ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.