使用 conda 降级和升级 python 个库

Downgrading and upgrading python libraries using conda

我经常使用 conda 安装 python 包,有时这涉及降级现有已安装的包。之后,我再次升级降级包到最新版本。

例如

conda install -c conda-forge iris

将 numpy 从 1.11.x 降级到 1.10.4。稍后,我 conda update numpy 回到 1.11.x

这样做可以吗,还是以后会导致一些微妙的问题?

tl;博士;

可能不会,因为 numpy 1.10 -> 1.11 不是一个巨大的飞跃。

推荐方法

我建议不要让 conda 匹配每个包的正确版本。您可能会得到错误的结果或崩溃。

更长的解释

iris 的配方是使用 numpy 1.10 构建的,因此如果您将 numpy 强制回 1.11,您可能会遇到以下问题:

  • 崩溃:如果 iris 是针对 NumPy 编译的(使用其 C Api)
  • 错误的结果:如果iris使用了一个API numpy changed between versions
  • python 异常:如果iris 使用API numpy,其中实现在版本之间发生了变化。

我知道最近 numpy 要求 numpy 数组的 索引 只能是 整数 。这破坏了一些代码。我不记得是哪个版本的 numpy 做到的。

所有包都是如此,不仅是 numpy。一些库保持 API and/or 版本之间的 ABI 兼容性,其他库则不。

总而言之,numpy具有相当稳定的API。我真的无法回答它的 ABI,因为我不知道。