为什么conda尝试用——没有更新依赖项来更新包?

2024-09-26 22:12:16 发布

您现在位置:Python中文网/ 问答频道 /正文

通常,当我尝试安装一个新包时,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)?

Tags: theno版本pyenvpackagepackagesdependenciesupdate
2条回答

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

tldr

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

一些解释

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

如您所见,它正在安装vs2010_runtime,这是由于conda正在更新其包是如何使用功能构建的。因为有了Python3.4(它是使用Visual Studio 2010构建的),所以它正在安装VS2010运行时。如果您安装的是Python3.5,它将安装VS2015运行时。

内部版本号/字符串不应该打断任何人,因为它们应该被修复到该包的生成过程中(例如:您向编译添加了一个您不打算添加的标志)。

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

相关问题 更多 >

    热门问题