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

stm*_*max 17 python anaconda conda

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

今天我想安装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)?
Run Code Online (Sandbox Code Playgroud)

Edi*_*enz 5

tldr;

不用担心,您的软件包不会被更新,只会更新它们的内部版本号,这应该是无害的。

一些解释

更新的是内部版本号,而不是安装的每个软件包的版本。

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

内部版本号/字符串不应破坏任何人,因为它们应该是该软件包的内部版本过程的修复程序(例如:您向不希望这样做的编译添加了标志)。

如果存在,conda是否应该更新软件包(相同版本,不同内部版本号)是有争议的--no-update-dependencies,因为这可能会导致安装错误。

  • 它似乎更新的不仅仅是内部版本号。我将整个环境置于版本控制之下,这使得查找更改变得容易。以下是在上面的示例中进行的一些相当重要的更改: http://imgur.com/a/TGZuB 总共更改了数百个文件。 (2认同)

Jef*_*eng 5

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

  • --no-deps 与 --no-update-deps 不同,因为一个“不安装”依赖项,而其他依赖项则对它进行了颂扬(虽然我们应该期望现有的依赖项不会被触及......) (3认同)