Как мне обновить Anaconda?

259

На моем компьютере установлена ​​Anaconda, и я бы хотел ее обновить. В Navigator я вижу, что есть несколько отдельных пакетов, которые могут быть обновлены, но также и anacondaпакет, который иногда имеет номер версии, а иногда говорит custom. Как мне продолжить?

введите описание изображения здесь

IanSR
источник
1
Большинство ответов предлагают conda update [-n root] -v anaconda, но он предлагает СКАЧАТЬ мои python: 3.7.0-hc167b69_0 --> 3.6.6-hc167b69_0. Кажется очень сломленным.
СМС

Ответы:

417

Что на самом деле хотят 95% людей

В большинстве случаев, когда вы говорите, что хотите обновить Anaconda, вам нужно выполнить команду:

conda update --all

(Но этому должно предшествовать , conda update -n root condaчтобы у вас была установлена ​​последняя condaверсия)

Это обновит все пакеты в текущей среде до последней версии - мелким шрифтом является то, что он может использовать более старую версию некоторых пакетов для удовлетворения ограничений зависимостей (часто это не требуется и когда это необходимо, решатель комплексных планов сделает все возможное, чтобы минимизировать воздействие).

Это должно быть выполнено из командной строки, и лучший способ получить это из Anaconda Navigator, затем на вкладке «Среды», затем нажмите на треугольник рядом с rootокружением, выбрав «Открыть терминал»:

Открыть терминал от Навигатора

Эта операция обновит только одну выбранную среду (в данном случае, rootсреду). Если у вас есть другие среды, которые вы хотите обновить, вы можете повторить процесс, описанный выше, но сначала нажмите на среду. Когда он выбран, справа появляется треугольный маркер (см. Изображение выше, шаг 3). Или из командной строки вы можете указать имя среды ( -n envname) или путь ( -p /path/to/env), например, чтобы обновить dspyrсреду на снимке экрана выше:

conda update -n dspyr --all

Обновление отдельных пакетов

Если вы заинтересованы только в обновлении отдельного пакета, просто нажмите синюю стрелку или синий номер версии в Navigator, например, для снимка экрана astroidили astropyна снимке экрана выше, и эти теги будут помечены для обновления. Когда вы закончите, вам нужно нажать кнопку «Применить»:

Подать заявку на обновление отдельных пакетов

Или из командной строки:

conda update astroid astropy

Обновление только пакетов в стандартном Anaconda Distribution

Если вас не интересуют версии пакетов и вы просто хотите «последний набор всех пакетов в стандартном дистрибутиве Anaconda, если они работают вместе» , вам следует взглянуть на эту суть .

Почему обновление пакета Anaconda почти всегда является плохой идеей

В большинстве случаев обновление пакета Anaconda в списке пакетов может привести к неожиданному результату: на самом деле вы можете понизить версию многих пакетов (на самом деле, это вероятно, если оно указывает версию как custom). Суть выше предоставляет детали.

Использование среды conda

Ваша rootсреда, вероятно, не подходит для того, чтобы пытаться управлять точным набором пакетов: это будет динамическое рабочее пространство с установленными новыми пакетами и случайным образом обновляемыми пакетами. Если вам нужен точный набор пакетов, создайте среду conda для их хранения. Благодаря кешу пакетов conda и способу использования ссылок на файлы, это обычно i) быстро и ii) занимает очень мало дополнительного дискового пространства. Например

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

Документация conda содержит больше деталей и примеров.

pip, PyPI и setuptools?

Ничто из этого не поможет в обновлении пакетов, которые были установлены из PyPI via pipили любых пакетов, установленных с помощью python setup.py install. conda listдаст вам несколько советов о пакетах Python на основе пипа, которые есть в вашей среде, но не сделает ничего особенного для их обновления.

Коммерческое использование Anaconda или Anaconda Enterprise

Это в значительной степени та же история, за исключением того, что вы не сможете обновить rootсреду, если она была установлена ​​кем-то другим (скажем /opt/anaconda/latest). Если вы не можете обновить используемые вами среды, вы сможете клонировать, а затем обновить:

conda create -n myenv --clone root
conda update -n myenv --all
IanSR
источник
4
@MattSchmatt убедитесь, что вы тоже conda update conda. Конда существенно изменилась за прошедший год, и, в частности, у нас был релиз в конце сентября 2017 года, в котором было много улучшений. Если что-то conda update --allломается (что исторически было почти наверняка), то это ошибка, о которой вы должны сообщить в систему отслеживания проблем conda GitHub - сегодня эта операция не должна ломать любые существующие компоненты (при условии, что conda должна быть до Дата).
IanSR
7
Я должен был сделать conda update -n root condaвместо того, что упомянуто выше, чтобы это работало.
Лукас
9
Это conda update --allне то, что хотят 95% людей. Это может привести к нестабильной среде. Ответ пользователя 3056882 безопаснее.
gagarine
1
Текущий macOS Anaconda3 version is 5.1.0. Но когда я это делаю, conda -Vэто говорит мне, 4.5.1хотя я бежал conda update condaи conda update anaconda. Есть идеи почему?
Эдисон
3
conda update --allне удалось из-за ошибки «отказано в разрешении». Успешно запустил его с правами администратора. Чтобы запустить с правами администратора: Пуск> Anaconda3> Запрос Anaconda> Щелкните правой кнопкой мыши> Дополнительно> Запуск от имени администратора.
BabarBaig
100

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

Поэтому вы должны использовать conda для обновления, как описано в официальных документах :

conda update conda
conda update anaconda


В Windows, если вы выполнили установку «для всех пользователей», может потребоваться запуск из командной строки Anaconda с правами администратора.

Просто щелкните правой кнопкой мыши на Anaconda Prompt в меню Пуск

Это предотвращает ошибку:

ОШИБКА conda.core.link:_execute(502): Произошла ошибка при удалении пакета «defaults :: conda-4.5.4-py36_0». PermissionError (13, «Доступ запрещен»)

Кардин Ли Дж. Х.
источник
46

Откройте командную строку или команду conda и запустите:

conda update conda
conda update anaconda

Рекомендуется выполнить обе команды дважды (одну за другой), чтобы убедиться, что все основные файлы обновлены.

Это должно вернуть вас к последним «релизам», которые содержат пакеты, выбранные сотрудниками Continuum для совместной работы.

Если вы хотите запустить последнюю версию каждого пакета (это может привести к нестабильной среде ):

conda update --all 

Надеюсь это поможет.

Источники:

H.Latte
источник
10
Если вы предпочитаете стабильную среду, а не последнюю версию каждого пакета, пропустите шаг 4. Если conda update anacondaвы вернетесь к одному из «релизов», который содержит пакеты, выбранные сотрудниками Continuum для совместной работы.
rudolfbyker
Спасибо, Рудольфбукер. Я отредактировал ответ, чтобы отразить ваш комментарий.
H.Latte
Если вы получаете пакет не установлен, попробуйте ошибку conda install anaconda.
Шиталь Шах
Я Конда обновление , а затем все мои пакеты перестали работать .... Я не знаю , почему , но думаю , что ваше решение не является хорошей идеей , Потому что Конда не является стабильным , используя этот способ обновления .... вот способ прокатки назад
Трэвис
6

Если у вас возникли проблемы с переходом, например, с 3.3.x на 4.x (обновление conda conda «не работает», чтобы перейти к следующей версии), попробуйте сделать это более конкретно, например так:

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

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

Вы должны знать, что вы делаете, потому что Конда может сломаться из-за принудительной установки. Если вы хотите получить больше гибкости / безопасности, вы можете использовать pkg-manager, например, nix (-pkgs) [с nix-shell] / NixOS.

По закону
источник
Возможно, но вы не считаете это совершенно сломанным, как клудж?
smci
Версия "непрерывность" является стандартом, например, в (веб) разработке. Как всегда, если вы хотите, чтобы все мысли были выровнены и переоценены, вы должны перестроить все с обновленными версиями. В общем случае файл "conda update --all" с обновлениями ../conda/../pinned должен также работать должным образом (! Позаботьтесь о дополнительных установках pip!).
InLaw
2
Когда мы вручную должны сообщить обновителю, какую конкретную версию обновить, тогда это уже не средство обновления, а просто сломанный установщик с симпатичным графическим интерфейсом. В общем, conda update --allломает все, как говорит их собственный FAQ, и в моем случае он с радостью предлагает понизить мой питон с 3.7.0 до 3.6.6 (хотя он знает, что доступен 3.7.1)
smci
Это ваше мнение об установщике, но это СТАНДАРТ в ИТ (с какой-то причиной). Опять же, это зависит, в частности, от вашего закрепленного файла И от того, установлены ли вы также pkgs через PIP! Что касается вашего случая: если у вас есть pkgs, которые недоступны или не совместимы с python 3.7.x, то он получит версию Python, которая может оптимально соответствовать ограничениям всех pkgs в вашей среде. Вот почему существует "Конда".
InLaw
Какова ваша причина для использования conda (если не для проверки целостности / понижения целостности вы жалуетесь)?
InLaw
6

Вот что рекомендует официальная документация Anaconda :

conda update conda 
conda update anaconda=2020.02

Если вторая строка выдает ошибку (опечатка в документе?), Это сработало здесь:

conda install anaconda=2020.02

(Вы можете найти весь спецификатор версии здесь )

Команда обновится до определенного выпуска метапакета Anaconda.

Это то, что хотят 95% пользователей Anaconda. Просто обновите до последней версии метапакета Anaconda (собранного и протестированного дистрибьюторами Anaconda) и не заботясь о статусе обновления отдельных пакетов (которые будут выпущены conda update --all).

MattSchmatt
источник
5

Вот лучшая практика (по моему скромному опыту). Выбор этих четырех пакетов также обновит все остальные зависимости до соответствующих версий, что поможет вам поддерживать согласованность среды. Последнее является общей проблемой, которую другие выражали в предыдущих ответах. Это решение не нуждается в терминале.

Обновление и обновление Anaconda3 или Anaconda2 лучшие практики

Полный массив
источник
Спасибо, помог мне!
Илан Айзельман WS
3

Откройте Anaconda cmd в базовом режиме:

Затем используйте conda update conda, чтобы обновить Anaconda

Затем вы можете использовать conda update --all, чтобы обновить все требования для Anaconda

conda update conda  
conda update --all  
Farshad
источник
2

На Mac откройте терминал и выполните следующие 2 команды.

conda update conda
conda update anaconda

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

Аджай Сант
источник
7
несколько раз? есть смысл сделать это.
Дипак
2
По моему опыту, если вы просто запускаете команды один раз, он не обновляется до последних версий пакетов python. Поэтому я предлагаю запустить его несколько раз.
Ajay Sant
Это дубликат другого ответа здесь на той же странице: stackoverflow.com/a/46842054/109618
Дэвид Дж.
2

Я использую Windows 10. Следующее обновляет все, а также устанавливает некоторые новые пакеты, включая обновление Python (для меня это было 3.7.3).

В оболочке попробуйте следующее (не забудьте изменить место, где установлены ваши данные Anaconda3). Требуется некоторое время, чтобы обновить все.

conda update --prefix X:\XXXXData\Anaconda3 anaconda
Д Джейкобсон
источник
1

Чтобы обновить установленную версию до последней версии, скажем 2019.07, запустите

conda install anaconda=2019.07

В большинстве случаев этот метод может удовлетворить ваши потребности и избежать проблем с зависимостями

QaraQoyunlu
источник
0
conda create -n py37 -c anaconda anaconda=5.3.1
conda env export -n py37 --file env.yaml

найдите env.yaml в C: \ Windows \ System32 и запустите cmd от имени администратора

conda env update -n root -f env.yaml  

тогда это работает!

leeningzzu
источник
-6

Это может обновить Python только:

conda update python
Эрик Сюй
источник