如何更新Anaconda?


259

我的计算机上安装了Anaconda,我想对其进行更新。在Navigator中,我可以看到有几个单独的软件包可以更新,但anaconda有时也有版本号,有时显示custom。我该如何进行?

在此处输入图片说明


1
多数答案都暗示了conda update [-n root] -v anaconda这一点,但是它提供了降级我的的作用python: 3.7.0-hc167b69_0 --> 3.6.6-hc167b69_0。好像很碎。
smci

Answers:


417

95%的人实际想要什么

在大多数情况下,当您说要更新Anaconda时,要执行的命令是执行以下命令:

conda update --all

(但是,这应该preceeded通过conda update -n root conda让你拥有最新conda安装的版本)

这会将当前环境中的所有软件包更新为最新版本-较小的字样是它可能会使用某些版本的旧软件包以满足相关性约束(通常不需要这样做,并且在必要时可以打包方案求解器将尽最大努力将影响降到最低)。

这需要从命令行执行,并且到达那里的最佳方法是从Anaconda Navigator,然后单击“环境”选项卡,然后单击root环境旁边的三角形,选择“打开终端”:

从导航器打开终端

此操作将仅更新一个选定的环境(在这种情况下为root环境)。如果您要更新其他环境,则可以重复上述过程,但请先单击该环境。选择该选项后,右侧会有一个三角形标记(请参见上图,第3步)。或从命令行中,您可以提供环境名称(-n envname)或路径(-p /path/to/env),例如,dspyr从上面的屏幕截图中更新您的环境:

conda update -n dspyr --all

更新单个软件包

如果您只对更新单个软件包感兴趣,则只需在Navigator中单击蓝色箭头或蓝色版本号,例如在上面的屏幕截图中astroidastropy在上面的屏幕截图中,这将标记这些软件包以进行升级。完成后,您需要单击“应用”按钮:

申请更新单个软件包

或从命令行:

conda update astroid astropy

仅更新标准Anaconda发行版中的软件包

如果您不关心软件包的版本,而只是想要“标准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

畅达文档有更多的细节和例子。

pip,PyPI和setuptools?

这些都无法帮助更新通过PyPI从PyPI pip安装的软件包或使用来安装的任何软件包python setup.py installconda list会为您提供有关环境中基于pip的Python软件包的一些提示,但不会对其进行任何特殊更新。

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我就不能启动Navigator,因为我无法解决。即使降级之后。因此,我不得不重新安装Anaconda并重新设置环境。那是我第二次遇到这种情况,而我从来没有遇到过问题conda update anaconda。即使这意味着我的软件包不是最新的(发行版仍然非常频繁地更新:docs.anaconda.com/anaconda/release-notes),我还是希望拥有一个稳定的系统
MattSchmatt

4
@MattSchmatt确保您也这样做conda update conda。过去一年中,康达取得了长足的发展,特别是我们在2017年9月下旬发布了一个版本,该版本引入了许多改进。如果conda update --all发生故障(从历史上讲,几乎可以确定这样做),那么这是一个错误,您应该向conda GitHub问题跟踪程序报告-今天该操作不应破坏任何现有组件(前提是conda必须由日期)。
IanSR '18

7
conda update -n root conda为了使其正常工作,我不得不做而不是上面提到的事情。
卢卡斯

9
conda update --all不是95%的人想要的。可能导致不稳定的环境。用户3056882的回答更安全。
gagarine

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 

希望这可以帮助。

资料来源:


10
如果您更喜欢稳定的环境而不是拥有每个软件包的最新版本,请跳过第4步。conda update anaconda应使您返回“发行版”之一,其中包含Continuum员工选择的软件包以使其协同工作。
rudolfbyker

谢谢你rudolfbyker。我已经编辑了答案以反映您的评论。
H.Latte

如果得到未安装的软件包错误,请尝试conda install anaconda
Shital Shah

我更新了conda,然后我的所有程序包都停止了工作。...我不知道为什么,但是它认为您的解决方案不是一个好主意,因为使用这种升级方式,conda conda不稳定....这是一种滚动方式返回
Travis

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/

您应该知道自己的操作,因为conda可能会由于强制安装而损坏。如果您想获得更大的灵活性/安全性,可以使用pkg-manager,例如nix(-pkgs)[with nix-shell] / NixOS。


也许吧,但您难道不认为这完全是一团糟吗?
smci

版本“连续性”是例如(网络)开发中的标准。像往常一样,如果您想消除所有想法并重新评估,则应使用更新的版本重新构建所有内容。通常,带有更新../conda/../pinned文件的“ conda更新--all”也应该正常工作(!请注意其他pip安装!)。
InLaw

2
当我们必须手动告诉更新程序要更新到哪个特定版本时,它就不再是更新程序,而只是带有漂亮GUI的损坏的安装程序。总的来说conda update --all,一切都会中断,就像他们自己的FAQ所说的那样,就我而言,它乐意将我的python从3.7.0降级到3.6.6(尽管它知道3.7.1可用)
smci

那是您对安装程序的看法,但这是IT的标准(有某些原因在后面)。同样,这尤其取决于您的固定文件,以及是否也通过PIP安装了pkgs!关于您的情况:如果您有不可用或不兼容python 3.7.x的pkg,它将获得Python版本,该版本可以最佳地适应环境中所有pkg的限制。这就是存在“ conda”的原因。
InLaw

您使用conda的原因是什么(如果不是因为您抱怨的完整性检查/降级)?
InLaw

6

这是Anaconda官方文档建议的内容:

conda update conda 
conda update anaconda=2020.02

如果第二行抛出错误(文档中有错字?),则可以在这里工作:

conda install anaconda=2020.02

(您可以在此处找到所有版本说明符)

该命令将更新为Anaconda meta-package的特定版本。

是95%Anaconda用户想要的东西。只需升级到最新版本的Anaconda元软件包(放到一起并由Anaconda发行商进行测试),而不必关心单个软件包的更新状态(由发行conda update --all)。


@Arrow_Raider与conda update ...错字有关吗?同意
MattSchmatt

5

这是最佳做法(以我的拙劣经验来说)。选择这四个软件包还将把所有其他依赖项更新为适当的版本,这将帮助您保持环境的一致性。后者是其他人在较早回应中表达的普遍问题。该解决方案不需要终端。

更新和升级Anaconda3或Anaconda2最佳做法


谢谢,帮了我!
Ilan Aizelman WS

3

在基本模式下打开Anaconda cmd:

然后使用conda update conda更新Anaconda

然后您可以使用conda update --all来更新Anaconda的所有要求

conda update conda  
conda update --all  

2

在Mac上,打开终端并运行以下2条命令。

conda update conda
conda update anaconda

确保多次运行每个命令以更新到当前版本。


7
多次?这样做没有任何意义。
Deepak

2
以我的经验,如果您只运行命令一次,它不会更新为python软件包的最新版本。因此,我建议多次运行它。
Ajay Sant

这是同一页面上另一个答案的重复:stackoverflow.com/a/46842054/109618
David J.

2

我正在使用Windows10。以下更新所有内容,并安装了一些新软件包,包括python更新(对我来说是3.7.3)。

在外壳上,尝试以下操作(请确保更改Anaconda3 Data的安装位置)。更新所有内容需要一些时间。

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

在C:\ Windows \ System32中找到env.yaml并以管理员身份运行cmd

conda env update -n root -f env.yaml  

然后就可以了!


-6

这只能更新python:

conda update python
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.