Jas*_*n S 3 python anaconda conda
conda install和 和有conda update什么区别?我浏览了文档,没有看到任何明显的区别。
文档说:
来自conda install:
Conda 尝试安装所请求软件包的最新版本。为此,它可能会更新一些已安装的软件包,或安装其他软件包。要防止更新现有包,请使用 --no-update-deps 选项。这可能会强制 conda 安装请求包的旧版本,并且不会阻止安装其他依赖包。
来自conda update:
Conda 尝试安装所请求软件包的最新版本。为此,它可能会更新一些已安装的软件包,或安装其他软件包。要防止更新现有包,请使用 --no-update-deps 选项。这可能会强制 conda 安装请求包的旧版本,并且不会阻止安装其他依赖包。
这正是您提供的文档所说的。对于 conda 安装:
将软件包列表安装到指定的 conda 环境中。
对于 conda 更新:
将 conda 包更新到最新的兼容版本。
在问题中引用的文档文本的上下文中
... Conda 尝试安装所需软件包的最新版本...
似乎需要强调的是,文档并不完全清楚安装和更新之间的区别。事实上,文档对安装的内容有相同的解释,但没有澄清条件,这确实有点令人困惑(至少对我来说)。
安装和更新之间的隐式区别不仅在于,如果您尝试更新不存在的包(问题评论中提到的内容),您会收到错误,而且还有副作用(依赖项的处理)install和是不同的update。
一个现实世界的例子:
(base) 535> conda install -d sphinx
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /data/anaconda3
added / updated specs:
- sphinx
The following packages will be downloaded:
package | build
---------------------------|-----------------
sphinx-3.0.3 | py_0 1.1 MB
------------------------------------------------------------
Total: 1.1 MB
The following packages will be UPDATED:
sphinx 2.4.0-py_0 --> 3.0.3-py_0
Run Code Online (Sandbox Code Playgroud)
而更新导致
(base) 536> conda update -d sphinx
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /data/anasynth_nonbp/anaconda3
added / updated specs:
- sphinx
The following packages will be downloaded:
package | build
---------------------------|-----------------
astroid-2.4.1 | py36_0 279 KB
...
sphinx-3.0.3 | py_0 1.1 MB
...
zipp-3.1.0 | py_0 13 KB
------------------------------------------------------------
Total: 39.8 MB
The following NEW packages will be INSTALLED:
importlib-metadata pkgs/main/linux-64::importlib-metadata-1.6.0-py36_0
prompt-toolkit pkgs/main/noarch::prompt-toolkit-3.0.4-py_0
toml pkgs/main/linux-64::toml-0.10.0-py36h28b3542_0
The following packages will be REMOVED:
asn1crypto-1.3.0-py36_0
The following packages will be UPDATED:
astroid 2.3.3-py36_0 --> 2.4.1-py36_0
...
sphinx 2.4.0-py_0 --> 3.0.3-py_0
...
zipp 2.2.0-py_0 --> 3.1.0-py_0
Run Code Online (Sandbox Code Playgroud)
在没有调查最后细节的情况下,似乎可以总结如下(最后使用 进行测试conda 4.8.3):
康达安装
安装所请求软件包的最新版本,并对已安装的软件包进行最少的更改。
康达更新
如果包存在,将更新到最新版本;如果不存在,将给出错误。此外,它还更新作为参数列出的包的所有依赖项。conda update即使参数中的包已经是最新版本,也会更新它们。