是否建议不要在来自不同 conda 渠道的 conda 环境中混合包?

问题描述

有人建议我not mix conda-forge and anaconda channels in one environment。它会导致动态库问题

你能告诉我吗:

  1. 这个动态库问题是什么?
  2. 处理可能需要来自两个渠道的软件包的环境的建议方法是什么(因为它们仅在一个渠道中独家提供)

解决方法

在我之前的回答中,我只是提醒有时可能存在动态库问题,但不一定说会发生。已知会发生此类问题(例如,this question),因为 Conda 包是预编译的,但动态链接到依赖库,而不是静态链接,并且由于 anaconda 通道和 conda-forge 通道使用不同的构建堆栈,这可能会导致引用特定于通道的特定库构建的符号。

建议的解决方案是设置channel_priority: strict,即

conda config --set channel_priority strict