我知道通过添加选项 --conda-create-envs-only
您可以为工作流程创建 conda 环境。但是,是否可以在事先不知道工作流 DAG 的情况下强制创建 workflow/envs/
下的所有 conda 环境?
原因是我计划在 HPC 上运行 Snakemake,并且计算节点没有互联网。因此,我必须在具有互联网的构建节点中设置环境。问题是我只能访问计算节点中的输入数据。
最佳答案
也许将 conda 环境的创建本身作为目标?类似的东西,未经测试:
localrules: all, make_envs
rule all:
input:
# Maybe not needed:
expand('{env}.done', env= ['env1', 'env2'])
rule make_envs:
conda:
'workflow/envs/{env}.yaml',
output:
touch('{env}.done'),
rule one:
input:
'env1.done',
conda:
'workflow/envs/env1.yaml',
output: ...
shell: ...
规则 one
将找到创建的 conda env,因为它需要 env1.done
作为输入
关于python - Snakemake:如何强制创建所有 conda 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71345313/