【问题标题】:SnakeMake does not activate conda enviromentSnakeMake 不激活 conda 环境
【发布时间】:2018-09-11 14:00:41
【问题描述】:

我有一个简单的 Snakefile,我有一个使用 YAML 配置文件中定义的 Conda 环境的规则。

但是,当运行这个 Snakefile 时,Snakemake 并没有激活 Conda 环境并返回这个错误:

Error in rule read_file:
        jobid: 0
        conda-env: /data/projects/testproject/.snakemake/conda/805d8d2a

RuleException:
CalledProcessError in line 5 of /data/projects/testproject/scripts/snake/process.snake:
Command 'source activate /data/projects/testproject/.snakemake/conda/805d8d2a; set -euo pipefail;  emirge ' returned non-zero exit status 2
  File "/data/projects/testproject/scripts/snake/process.snake", line 5, in __rule_read_file
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
Shutting down, this might take some time.
Exiting because a job execution failed. Look above for error message

我尝试使用 source activate 805d8d2aconda activate 805d8d2a 手动激活 Conda 环境(由 SnakeMake 创建的环境)但没有成功(错误消息暗示没有具有所述名称的环境,但是,conda info --envs 列出了它现有)。为了进一步测试 Conda 功能,我手动创建了一个 Conda 环境,并且能够使用后一个命令激活它(命令 source activate testenv 不起作用)。

我的问题是:如何从我的 SnakeMake 脚本中自动激活 Conda 环境?

Conda 版本:4.5.11

SnakeMake 版本:5.2.4

蛇文件:

rule my_rule:
    conda:
        "emirge.yaml"
    shell:
        "emirge"

Emirge.yaml:

channels:
- bioconda
dependencies:
- emirge=0.61.1

编辑:

我正在使用命令运行 Snakemake:

snakemake --use-conda

【问题讨论】:

    标签: python conda snakemake


    【解决方案1】:

    你必须告诉snakemake在命令行上使用conda:

    snakemake --use-conda
    

    文档指出:

    康达:
    --use-conda
    如果在规则中定义,请在 conda 环境中运行作业。如果未设置此标志,则忽略 conda 指令。

    您遇到的错误是因为您正在运行的 shell 命令不存在。
    Snakemake执行命令

    source activate /data/projects/testproject/.snakemake/conda/805d8d2a; set -euo pipefail;  emirge
    

    我认为您的环境已正确创建和激活,但未找到命令 emirge

    【讨论】:

    • 我忘了写我的实际命令,我使用了 --use-conda 选项,但它不起作用。我编辑了我的问题以包含命令。
    • 我认为您的环境运行良好。您遇到的错误是因为命令 emirge 不存在。
    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2018-08-02
    • 1970-01-01
    • 2021-06-26
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多