为什么conda更新降级某些库

时间:2015-07-19 06:00:33

标签: anaconda conda

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

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

今年早些时候,枕头已经好几个月了。

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

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

2 个答案:

答案 0 :(得分:21)

这是一个兼容性问题。 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

答案 1 :(得分:10)

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

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

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