对于m,在OS X上,conda update --all
经常降级库 - 并更新许多库。
今年早些时候,枕头已经好几个月了。
令人惊讶的是,今天它是几个与HDF5相关的库,numba和llvmlite。
所以conda update numba
让numba回到最新版本,依此类推其他8个库,但为什么不conda update --all
这样做呢?
答案 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
)。