Snakemake 如何在规则中获取conda环境路径?

Snakemake 如何在规则中获取conda环境路径?,snakemake,Snakemake,在Snakemake的早期版本上(在3.9.1上使用与bioconda的集成进行测试——使用conda),我只需检查environment.yaml文件的md5散列,并在workdir/.Snakemake/conda/md5中找到相应的环境 在版本4.3.0上,文件的md5哈希与环境文件夹不匹配。查看源代码,我发现在计算md5散列时包含了环境文件的完整路径,以避免硬编码路径上出现conda错误,但我不确定如何生成正确的散列 有没有其他更简单的方法来获取规则中的环境路径?如果没有,如何生成正确的

在Snakemake的早期版本上(在3.9.1上使用与bioconda的集成进行测试——使用conda),我只需检查environment.yaml文件的md5散列,并在workdir/.Snakemake/conda/md5中找到相应的环境

在版本4.3.0上,文件的md5哈希与环境文件夹不匹配。查看源代码,我发现在计算md5散列时包含了环境文件的完整路径,以避免硬编码路径上出现conda错误,但我不确定如何生成正确的散列


有没有其他更简单的方法来获取规则中的环境路径?如果没有,如何生成正确的md5来查找环境?

目前,唯一合理的方法是检查日志。激活环境时将显示路径。但是,提供一个命令行选项来列出所有环境是一个非常好的主意,比如
snakemake--list conda envs
。我会尽快做的


编辑:我已经在主分支中实现了
--list conda envs
。它将在下一版本中发布。

谢谢您的回答。这个选项确实很有用,但我在这里真正想要的是在运行时将环境路径放在规则中。例如,我需要在一些包中访问/opt/文件夹。我找到了一种方法,但不确定是否非常便携。由于规则激活了环境,我可以从$PATH变量:
${{{PATH%%/bin:*}}