更新所有anaconda python软件包的正确命令是什么?

use*_*207 11 python python-3.x anaconda

我正在使用python Anaconda.我很困惑这是将所有Anaconda软件包更新到最新版本的正确命令.似乎有2个命令可以使用;

$ conda update --all
Run Code Online (Sandbox Code Playgroud)

要么

$ conda update anaconda
Run Code Online (Sandbox Code Playgroud)

运行后者后,anaconda升级到ver4.4.随后,我运行前者,询问我是否要降级某些包.这让我很困惑.哪个是正确的命令?

dar*_*ith 10

anaconda软件包是一个"meta"包,这意味着它本身不包含任何软件包,它只是设置Anaconda Inc.(以前的Continuum IO)包含的"Anaconda发行版"的许多软件包的特定版本.因此,当您键入

conda update anaconda
Run Code Online (Sandbox Code Playgroud)

您告诉conda更新到该anaconda软件包的最新版本,并使用anaconda软件包中指定的特定版本安装所有依赖项.这样做的好处是Anaconda Inc.(以前称为Continuum IO)已经对这些软件包进行了测试,并确保不存在任何冲突.

当你输入

conda update --all
Run Code Online (Sandbox Code Playgroud)

conda使用其内部算法来尝试和解析依赖项的版本.我不确定细节,但这可能导致某些软件包升级,但其他软件包被降级,因为您安装的某个软件包需要降级版本的依赖项.特别是对于anaconda元数据包安装的软件包数量,肯定会发生冲突,并且conda正在尽力解决所有这些问题.

至于使用哪个,我会说,如果你开始使用anaconda,继续使用anaconda以避免版本冲突(即conda update anaconda).但是,如果您有一个新环境或者您正在使用没有anaconda安装元数据包的Miniconda ,那么conda update --all可能是更好的选择.你的旅费可能会改变.

  • 也许,`conda install anaconda`会更好,因为它应该强制所有依赖关系回到anaconda包中指定的版本.但是,你也可以运行它,看看会发生什么! (4认同)