问题描述
我正在解决各种问题,试图构建一个能够运行一组通用软件包的环境,但是我在控制解决方案时遇到了一些麻烦。我发现自己希望能够排除某些软件包的安装。也就是说,如果涉及安装该软件包,我希望解决方案排除配置,并继续寻找不同的解决方案。
对于一些上下文,我发现 conda 提出的解决方案涉及安装 libgcc 和 libgcc-ng,我认为这会导致一些问题,我想阻止 conda 考虑包括libgcc-ng,我很确定不应该绝对必要。
作为“conda create”命令的一部分,我如何实现这一点?
解决方法
一种选择是创建一个使用 a run_constrained
requirement 的自定义包。一个简单的参考示例是 nomkl
包(请参阅 the Conda Forge meta.yaml),它通过包含以下内容来阻止安装 mkl
包:
requirements:
run_constrained:
- mkl <0.a0
也就是说,这个选项要求安装了mkl
,它必须遵守这个约束。而且由于 mkl
的任何版本都无法满足此约束,因此它可以有效地修剪所有包含它的解决方案。