使用Conda时,我倾向于安装许多来自许多不同来源的软件包。事实证明,存在超级不兼容性。我想删除所有不是来自默认或 conda-forge 频道的套餐。 我该如何做到这一点?
我意识到一种可能的解决方案是完全重新安装,但是首选替代方案。
答案 0 :(得分:0)
如果您仍然希望安装软件包,并且至少尝试从受信任的渠道安装它们,则一种解决方案是导出环境,删除不需要的渠道,然后尝试仅使用您想要的频道。
要导出有问题的环境,
conda env export -n your_env --file env.yaml
如果您想从一开始就排除所有频道信息,则可以添加--ignore-channels
标志。但是,由于听起来您只想排除特定频道,因此,只需编辑 env.yaml 文件,即可从YAML的 channels 部分中删除这些特定频道
您可能还需要添加--no-builds
标志,以便跨具有不同构建配置的渠道识别软件包。
在拥有满意的环境YAML之后,可以使用以下方法重新创建环境:
conda env create -f env.yaml
如果您想强行安装在前一个之上,则可以使用--force
标志。或者,采取较为保守的路线,并为环境提供一个新名称(例如-n your_env2
)。
如果某些软件包在您信任的特定渠道中不可用,则可能必须从YAML文件中删除某些软件包。也许首先应该放弃那些软件包的某些版本要求,只是看看是否还有其他版本要求。