问题描述
第一个问题,如果我不遵守任何既定的规范,请对我大喊:)
我第一次设置了一个完整的 conda 构建管道,我有一个看起来像这样的 Makefile:
build:
echo "Building packages."
conda-build my_first_package/conda-recipe --output-folder /path/to/dev/channel
conda-build my_second_package/conda-recipe --output-folder /path/to/dev/channel
conda-build my_third_package/conda-recipe --output-folder /path/to/dev/channel
conda index /path/to/dev/channel
有问题的三个包彼此非常紧密地连接在一起,并且存储在同一个 repo 中,因此最好在同一个管道中构建每个包。我想做的是为每个进程分出一个单独的进程并并行运行每个 conda-build 命令。不确定这是否是一个安全的行动,因为我真的不明白 conda-build 正在做什么来“构建”包。
我将在今天晚些时候测试这个想法并将发布更新,但我真正担心的是它会产生一些意想不到的副作用,我不知道如何进行测试。所以我想我的问题是:conda-build 能否将多个包并行构建到同一个 conda 通道中?
解决方法
或者,对于非常紧密耦合的包,您可能希望查看具有多个输出的单个构建。如需参考,请参阅 conda-build
的 the Outputs Section documentation。也可能值得查看一个完整的示例,例如 Conda Forge's matplotlib-feedstock
,它从单个配方构建 matplotlib
、matplotlib-base
和 mpl-sample-data
。
在这种特殊情况下,我想像
meta.yaml
...
outputs:
- name: my_first_package
...
- name: my_second_package
...
- name: my_third_package
...
...
然后运行单个 conda build
命令。