为什么 conda update 会降级一些库

why does conda update downgrade some libraries

对于 OS X 上的 m,conda update --all 经常降级库 - 同时更新许多库。

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

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

没想到,今天竟然是几个HDF5相关的库,numba和llvmlite。

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

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

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

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

编辑:此行为已更改。它现在尝试增加所有软件包的版本(major/minor 版本之间的 Python 除外),以便没有软件包彼此不兼容。

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

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

不幸的是,要看清什么取决于什么并不总是那么容易,但是有一些技巧。一种方法是 pin each package to a version you want and running conda update --all. It should generate an unsatisfiability hint that will give you an idea of what is causing the problem. Another way is to search through the package metadata

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