如何找到哪个库阻止更新 conda 中的包?

How to find which library prevents updating a package in conda?

我已经设置了几个带有数据科学库的环境,例如 pandas, numpy, matplotlib, scikit-learn, tensorflow etc.

但是我无法将某些软件包更新到最新版本。

例如

conda update pandas

会告诉我我有可用的最新版本,但我确定最新版本是 1.+(我的是 0.25

有没有办法查看哪些包阻止特定包更新?

正如 anacondas 文档中所解释的那样,没有真正的方法可以一步完成。您可以一一检查每个包的依赖关系。 这在下面 link 中解释。 https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-pkgs.html#listing-package-dependencies

有一种方法可以使用 drop-in 替换 mamba

您所要做的就是提供您要更新到的包的版本,mamba 会告诉您是什么阻止了它的更新。

例如,就我而言,我想将 snakemake 更新到版本 > 7。但是 mamba update snakemake 只给了我 6.15。

所以我运行:mamba install snakemake=7,结果很有参考价值:

Looking for: ['snakemake=7']

Pinned packages:
  - python 3.8.*
  - bcbio-gff 0.6.7.*


Encountered problems while solving:
  - nothing provides yte >=1.0,<2.0 needed by snakemake-minimal-7.0.0-pyhdfd78af_0

原来我忘了包括 -c conda-forge,这是 yte 的来源。