Як оновити Anaconda?


259

У мене на комп'ютері встановлена ​​Anaconda, і я хотів би її оновити. У Навігаторі я бачу, що є кілька окремих пакетів, які можна оновити, але також anacondaпакет, який інколи має номер версії, а інколи говорить custom. Як мені діяти?

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


1
Більшість відповідей напрошують conda update [-n root] -v anaconda, але це пропонують ДОГОВІРИТИ мій python: 3.7.0-hc167b69_0 --> 3.6.6-hc167b69_0. Здається, дуже зламано.
smci

Відповіді:


417

Чого насправді хочуть 95% людей

У більшості випадків те, що ви хочете зробити, коли ви говорите, що хочете оновити Anaconda, - це виконати команду:

conda update --all

(Але це повинно бути передує шляхом conda update -n root condaтому у вас є остання condaвстановлена версія)

Це дозволить оновити всі пакети в поточному середовищі до останньої версії - з невеликим шрифтом, що він може використовувати старішу версію деяких пакетів для задоволення обмежень залежності (часто це не буде потрібно, а коли це необхідно вирішувач плану пакета зробить усе можливе, щоб мінімізувати вплив).

Це потрібно виконати з командного рядка, і найкращий спосіб дістатися туди - з Anaconda Navigator, потім на вкладці "Environment", потім натисніть на трикутник поруч із rootсередовищем, вибравши "Open Terminal":

Відкрийте термінал від Навігатора

Ця операція оновить лише одне вибране середовище (у цьому випадку rootоточення). Якщо у вас є інші середовища, які ви хочете оновити, ви можете повторити процес вище, але спочатку натисніть на середовище. Після його вибору праворуч є трикутний маркер (див. Зображення вище, крок 3). Або з командного рядка ви можете вказати ім'я середовища ( -n envname) або шлях ( -p /path/to/env), наприклад, оновити ваше dspyrсередовище з екрана, наведеного вище:

conda update -n dspyr --all

Оновлення окремих пакетів

Якщо вас цікавить лише оновлення окремого пакету, просто натисніть на синю стрілку або номер блакитної версії в Навігаторі, наприклад, для astroidабо astropyна скріншоті вище, і це позначає ці пакети для оновлення. Після завершення вам потрібно натиснути кнопку "Застосувати":

Застосувати для оновлення окремих пакетів

Або з командного рядка:

conda update astroid astropy

Оновлення лише пакетів у стандартній дистрибуції Anaconda

Якщо ви не переймаєтесь версіями пакунків і просто хочете "найновіший набір усіх пакетів у стандартному дистрибутиві Anaconda, якщо вони працюють разом" , то варто поглянути на цю суть .

Чому оновлення пакету Anaconda майже завжди є поганою ідеєю

У більшості випадків оновлення пакета Anaconda у списку пакунків матиме дивовижний результат: ви можете фактично знизити багато пакунків (адже це, ймовірно, якщо воно вказує версію як custom). Суть, наведена вище, містить детальну інформацію.

Використовуйте кондо-середовища

Ваше rootоточення, ймовірно , не є хорошим місцем , щоб спробувати управляти точний набір пакетів: це буде динамічна робочий простір з новими встановленими пакетами і пакунками випадковим чином оновлюється. Якщо вам потрібен точний набір пакунків, тоді створіть конда-середовище для їх зберігання. Завдяки кешу пакетів conda та тому, як використовується посилання файлів, це робиться, як правило, i) швидко та ii) витрачає дуже мало додаткового місця на диску. Напр

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

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

pip, PyPI та setuptools?

Ніщо з цього не допоможе оновити пакети, встановлені з PyPI через pipабо будь-які пакунки, встановлені за допомогою python setup.py install. conda listдасть вам декілька підказок про пакети Python на основі pip, які ви маєте в оточенні, але це не зробить нічого особливого для їх оновлення.

Комерційне використання Anaconda або Anaconda Enterprise

Це майже та сама історія, за винятком того, що ви, можливо, не зможете оновити rootсередовище, якби його встановив хтось інший (скажіть /opt/anaconda/latest). Якщо ви не в змозі оновити використовувані вами середовища, ви повинні мати змогу клонуватись, а потім оновити:

conda create -n myenv --clone root
conda update -n myenv --all

10
Я все одно буду йти з conda update anacondaмайбутніми оновленнями. Щойно зробив conda update --allі не зміг запустити Навігатор після цього, через PySide ModuleNotFoundErrorщо я просто не міг вирішити. Навіть після пониження рівня. Тому мені довелося перевстановити Anaconda і знову створити своє середовище. І ось вдруге це трапляється зі мною, тоді як у мене ніколи не було проблем conda update anaconda. Навіть якщо це означає, що мої пакети не надто сучасні (дистрибутив все ще оновлюється досить часто: docs.anaconda.com/anaconda/release-notes ) я вважаю за краще стабільну систему
MattSchmatt

4
@MattSchmatt переконайтеся, що і ви conda update conda. У минулому році Conda суттєво розвинулася, і зокрема, у нас відбувся реліз наприкінці вересня 2017 року, який вніс багато вдосконалень. Якщо conda update --allщось порушує (що, історично, це було майже впевнено), це помилка, про яку ви повинні повідомити трекеру випуску Conda GitHub - сьогодні ця операція не повинна порушувати жодних існуючих компонентів (за умови, що конда повинна бути до дата).
Янс

7
Мені довелося зробити conda update -n root condaзамість того, що було сказано вище, щоб воно працювало.
Лукас

9
conda update --allНе те , що 95% народів хочуть. Це може призвести до нестабільного середовища. Відповідь користувача3056882 - безпечніша.
гагарин

3
conda update --allне вдалося мені з помилкою "дозволу відмовлено". Успішно розмістив його з правами адміністратора. Для запуску з правами адміністратора: Пуск> Anaconda3> Підказка Anaconda> Клацніть правою кнопкою миші> Додатково> Запустити як адміністратор.
BabarBaig

100

Якщо ви намагаєтесь оновити свою версію Anaconda до нової, ви помітите, що запуск нового інсталятора не буде працювати, оскільки він скаржиться, що каталог встановлення не порожній.

Отже, ви повинні використовувати conda для оновлення, як це детально описано офіційними документами :

conda update conda
conda update anaconda


У Windows, якщо ви зробили встановлення "для всіх користувачів", можливо, буде потрібно запустити підказку Anaconda з правами адміністратора.

Просто натисніть правою кнопкою миші на підказку Anaconda у меню "Пуск"

Це запобігає помилці:

ПОМИЛКА conda.core.link :_execute(502): сталася помилка під час видалення пакета 'за замовчуванням :: conda-4.5.4-py36_0'. PermissionError (13, "Доступ заборонено")


46

Відкрийте "командний або умовний запит" та запустіть:

conda update conda
conda update anaconda

Добре запустити обидві команди двічі (одна за одною), щоб переконатися, що всі основні файли оновлені.

Це повинно повернути вас до останніх "випусків", які містять пакунки, які обирають люди в "Континуум", щоб добре працювати разом.

Якщо ви хочете останню версію кожного пакета запустити (це може призвести до нестабільного середовища ):

conda update --all 

Сподіваюсь, це допомагає.

Джерела:


10
Якщо ви віддаєте перевагу стабільному середовищу, ніж наявність останньої версії кожного пакета, тоді пропустіть крок 4. Ви conda update anacondaповинні повернути вас до одного з "випусків", який містить пакунки, які обирають люди у "Континуумі", щоб добре працювати разом.
rudolfbyker

Дякую rudolfbyker. Я відредагував відповідь, щоб відобразити ваш коментар.
Х.Латте

Якщо помилка не встановлена, спробуйте conda install anaconda.
Shital Shah

Я оновлюю conda, а потім усі мої пакети перестали працювати .... Я не знаю, чому, але я думаю, що ваше рішення не є хорошою ідеєю, тому що Conda не є стабільним, використовуючи цей спосіб оновлення .... ось спосіб прокатки назад
Тревіс

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-менеджер, як nix (-pkgs) [з nix-shell] / NixOS.


Можливо, але чи не розглядали б ви це цілком зламане, як хитрощі?
smci

Версія "безперервність" є стандартом, наприклад, у (веб) розробці. Як завжди, якщо ви хочете, щоб все було вдосконалено та переоцінено, вам слід відновити все за допомогою оновлених версій. Взагалі "оновлення conda - все" з оновленнями ../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 THAN, він отримає версію 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).


@Arrow_Raider Відноситься до conda update ...друкарської помилки? Домовились.
MattSchmatt

5

Ось найкраща практика (за моїм скромним досвідом). Вибір цих чотирьох пакетів також оновить усі інші залежності до відповідних версій, що допоможе вам зберегти ваше середовище. Останнє є поширеною проблемою, яку інші висловили у попередніх відповідях. Це рішення не потребує терміналу.

Оновлення та модернізація найкращих практик Anaconda3 або Anaconda2


Дякую, допомогли мені!
Ілан Айзельман WS

3

Відкрийте Anaconda cmd в базовому режимі:

Потім використовуйте conda update conda для оновлення Anaconda

Потім можна використовувати оновлення conda - всі, щоб оновити всі вимоги до Anaconda

conda update conda  
conda update --all  

2

На Mac відкрийте термінал і запустіть наступні 2 команди.

conda update conda
conda update anaconda

не забудьте виконати кожну команду кілька разів, щоб оновити її до поточної версії.


7
кілька разів? робити сенс робити це.
Діпак

2
На мій досвід, якщо ви просто запускаєте команди, раз вони не оновлюються до останніх версій пакетів python. Тому я пропоную запустити його кілька разів.
Аджай Сант

Це дублікат іншої відповіді на цій самій сторінці: stackoverflow.com/a/46842054/109618
David J.

2

Я використовую Windows 10. Далі нижче оновлює все, а також встановлює нові пакети, включаючи оновлення python (для мене це було 3.7.3).

На оболонці спробуйте наступне (не забудьте змінити, де встановлені ваші дані Anaconda3). Щоб оновити все, потрібен певний час.

conda update --prefix X:\XXXXData\Anaconda3 anaconda

1

Щоб оновити встановлену версію до останньої версії, скажімо, 2019.07, запустіть

conda install anaconda=2019.07

У більшості випадків цей метод може задовольнити ваші потреби та уникнути проблем залежності


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  

тоді це працює!


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.