conda install和conda update有什么区别?

时间:2018-09-07 17:09:37

标签: python anaconda conda

conda installconda update有什么区别?我浏览了文档,没有发现任何明显的区别。


在每个人都对这个问题投反对票之前,请先阅读文档:

来自conda install

  

Conda尝试安装所请求的最新版本                 包。为此,它可能会更新一些软件包,                 已安装,或安装其他软件包。要防止现有软件包更新,请使用--no-update-deps                 选项。这可能会迫使conda安装旧版本的                 请求的软件包,并且不会阻止安装其他依赖软件包。

来自conda update

  

Conda尝试安装所请求的最新版本                 包。为此,它可能会更新一些软件包,                 已安装,或安装其他软件包。要防止现有软件包更新,请使用--no-update-deps                 选项。这可能会迫使conda安装旧版本的                 请求的软件包,并且不会阻止安装其他依赖软件包。

2 个答案:

答案 0 :(得分:3)

这正是您提供的文档所说的。对于conda安装:

  

将软件包列表安装到指定的conda环境中。

并进行conda更新:

  

将conda软件包更新为最新的兼容版本。

答案 1 :(得分:0)

在问题中引用的文档中的文本中

  

... Conda尝试安装所请求软件包的最新版本。...

需要强调的是,文档对于安装和更新之间的区别还不是很清楚。该文档对安装的内容具有相同的解释,但又不明确说明的条件这一事实肯定会造成混淆(至少对我而言)。

安装和更新之间的隐式区别不仅在于如果尝试更新不存在的软件包(问题注释中提到的错误),还会得到一个错误,还在于已经安装的软件包如果您使用install,将不会被触摸。

一个真实的例子:

(base)  535> conda install -d conda
Collecting package metadata (repodata.json): done
Solving environment: done

# All requested packages already installed.

同时

(base)  536> conda update -d conda
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /data/anasynth/anaconda3

  added / updated specs:
    - conda


The following packages will be downloaded:
8< -- cut a long list of packages -- >8

因此,实际上conda install仅在未安装软件包,已经安装软件包的情况下才安装最新版本,尽管说明中有说明,但它不会更新到最新版本最新版本,而conda update仅在软件包存在的情况下安装到最新版本,否则将给出错误消息。