为什么conda尝试使用--no-update-dependencies更新包?

时间:2016-03-24 08:24:11

标签: python anaconda conda

通常当我尝试安装新软件包时,即使我添加了--no-update-dependencies开关,conda也希望更新其他软件包。更新似乎是“不必要的” - 就像大多数时候只有版本号的最后一部分发生了变化。

今天我想安装mpld3包,conda想要将我的python包从版本3.4.4-2更新到3.4.4-4,即使我已经添加了--no-update-dependencies开关。

如何让conda安装mpld3软件包而不触及我的其他软件包?

C:\...>conda install -p pyenv --no-update-dependencies mpld3
Fetching package metadata: ....
Solving package specifications: ...........

Package plan for installation in environment C:\...\pyenv:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    vs2010_runtime-10.00.40219.1|                0         1.1 MB
    python-3.4.4               |                4        31.7 MB
    mpld3-0.2                  |           py34_0         123 KB
    ------------------------------------------------------------
                                           Total:        33.0 MB

The following NEW packages will be INSTALLED:

    mpld3:          0.2-py34_0
    vs2010_runtime: 10.00.40219.1-0

The following packages will be UPDATED:

    python:         3.4.4-2 --> 3.4.4-4

Proceed ([y]/n)?

2 个答案:

答案 0 :(得分:4)

tldr;

不用担心,您的软件包没有更新,只有他们的内部版本号,应该无害。

一些解释

正在更新的是build number,而不是每个已安装软件包的版本。

正如您所看到的,它正在安装vs2010_runtime,这是因为conda更新了其包使用功能构建的方式。由于您使用的是Python 3.4(使用Visual Studio 2010构建),因此它正在安装VS 2010运行时。如果您正在安装Python 3.5,它将安装VS 2015运行时。

构建数字/字符串不应该破坏任何人,因为它们应该修复该程序包的构建过程(例如:你在编译中添加了一个标志,你并不打算这样做)。

如果conda在--no-update-dependencies出现时更新软件包(相同版本,不同的构建号)是有争议的,因为最终可能会导致安装错误。

答案 1 :(得分:3)

只想提一下,这些选项在新的conda版本中已被弃用。例如,在conda版本4.6.7中,应使用“ conda install --no-deps yourpackage”