【问题标题】:why does conda update downgrade some libraries为什么 conda update 会降级某些库
【发布时间】:2015-07-19 06:00:33
【问题描述】:

对于 m,在 OS X 上,conda update --all 通常会降级库 - 以及更新许多库。

这很常见吗?或者可能在我的设置中?

今年早些时候,它是枕头好几个月了。

令人惊讶的是,今天它是几个与 HDF5 相关的库,numba 和 llvmlite。

所以conda update numba 将 numba 带回最新版本,其他 8 个库以此类推,但为什么 conda update --all 不这样做呢?

【问题讨论】:

    标签: anaconda conda


    【解决方案1】:

    这是一个兼容性问题。 Anaconda 是一组稳定的软件包。当你更新 Anaconda 时,你会更新到这个稳定的列表。

    但是,当您更新单个软件包时,它们可能会导致与 Anaconda 发行版的其余部分不兼容,因此它们被认为是不稳定的。这就是为什么当您使用 conda update --all 时,它会带您进入最新的稳定 Anaconda 发行版,该发行版可能有也可能没有您想要的单个软件包的版本。

    请看这里:https://github.com/ContinuumIO/anaconda-issues/issues/39

    编辑:此行为已更改。它现在尝试增加所有包的版本(主要/次要版本之间的 Python 除外),以便没有包相互不兼容。

    请看这里:http://continuum.io/blog/advanced-conda-part-1#conda-update-all

    【讨论】:

    • 感谢 Ringil - 非常感谢。很惊讶没有在 Stackoverflow 上看到关于这个的问题……我应该考虑看看 Continuum 的 github 区域。
    • 我不明白为什么这是公认的答案,这个问题甚至从未提及 Anaconda 元包?通过 miniconda 使用 conda 时,不需要使用它。
    • 啊,嗯,它有一个anaconda标签。
    【解决方案2】:

    出于兼容性目的,某些库依赖于特定的较低版本。 conda update --all 会尝试尽可能多地更新包,但它始终保持与每个包元数据中的版本限制的兼容性。请注意,anaconda 包在这里不起作用(假设您有最新版本的 conda),因为conda update --all 忽略了它。

    不幸的是,要看出什么取决于什么并不总是那么容易,但有一些技巧。一种方法是将pin 每个包转换为您想要的版本并运行conda update --all。它应该生成一个不满意的提示,让您了解导致问题的原因。另一种方法是搜索package metadata。

    对于 numba,我可以建议该问题可能与 numbapro 有关。有一些软件包依赖于 hdf5。您可以使用conda info <package> 查看包的依赖关系(如conda info h5py)。

    【讨论】:

    • 谢谢 Aaron(我给 Ringil 打勾……你已经充满了爱 :-)。
    • Ringil 的回答并不完全正确。正如我所指出的,conda update --all 完全忽略了 anaconda 包(过去并非如此,这在过去引起了很多问题)。
    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 2023-01-27
    相关资源
    最近更新 更多