Conda 4.10.3 和 Snakemake >5“__conda_exe”问题

问题描述 投票:0回答:3

我遇到以下问题,当我使用下面的命令时,snakemake 似乎无法使用 --use-conda 选项解决环境的创建问题。

如果我不使用snakemake的此选项并在conda而不是snakemake创建的适当环境中启动snakefile,则命令执行是可以的。

有人遇到同样的问题吗?

谢谢,

命令:

snakemake -p -d ./ -s 00_Quality_Check.smk -j 4 --use-conda

版本:

  • 康达4.10.3
  • python 3.9
  • snakemake 5.11

错误信息:

Building DAG of jobs...
CreateCondaEnvironmentException:
Unable to check conda version:
environment: ligne 10: __conda_exe : commande introuvable

  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/deployment/conda.py", line 232, in create
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/deployment/conda.py", line 343, in __new__
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/deployment/conda.py", line 356, in __init__
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/deployment/conda.py", line 410, in _check

版本:

  • 康达4.10.3
  • Python 3.9
  • snakemake 6.7

错误信息:

Building DAG of jobs...
environment: ligne 10: __conda_exe : commande introuvable
Traceback (most recent call last):
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/__init__.py", line 699, in snakemake
    success = workflow.execute(
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/workflow.py", line 933, in execute
    dag.create_conda_envs(
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/dag.py", line 304, in create_conda_envs
    env.create(dryrun)
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/deployment/conda.py", line 281, in create
    conda = Conda(self._container_img)
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/deployment/conda.py", line 433, in __init__
    shell.check_output(self._get_cmd("conda info --json"))
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/site-packages/snakemake/shell.py", line 63, in check_output
    return sp.check_output(cmd, shell=True, executable=executable, **kwargs)
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/home/usr/miniconda3/envs/snake/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'conda info --json' returned non-zero exit status 127.
conda snakemake
3个回答
1
投票

这可能与这个长期开放的 conda 问题有关:

https://github.com/conda/conda/issues/7980

基本上,默认情况下您无法从脚本内运行 conda。

为了解决这个问题,以前,人们在 ~/.bashrc 或 ~/.bash_profile 中的 conda 节之后(即“# <<< conda initialize <<<"):

”之后)添加了类似以下内容
# Make these functions available to scripts.
export -f conda
export -f __conda_activate
export -f __add_sys_prefix_to_path
export -f __conda_hashr

但看起来 conda 最近发生了一些变化。 现在以下内容可能就足够了:

# Make these functions available to scripts.
export -f conda
export -f __conda_activate
export -f __conda_reactivate
export -f __conda_exe

如果这些都不起作用,只需使用大锤:

# Make these functions available to scripts.
export -f conda
export -f __conda_activate
export -f __conda_reactivate
export -f __add_sys_prefix_to_path
export -f __conda_hashr
export -f __conda_exe

执行上述操作有助于修复上面为同事报告的相同错误。

重要提示:您需要注销并重新登录才能正常工作。

要进行测试,请将“conda info --json”放入脚本中,然后运行该脚本。如果您看到一堵 JSON 墙,则说明您已经解决了问题。


0
投票

您的 conda 环境似乎已损坏,或者您在未安装 conda 的环境中运行 Snakemake。

查看错误信息的最后一行:

subprocess.CalledProcessError: Command 'conda info --json' returned non-zero exit status 127.

这就是说,snakemake 运行了命令

conda info --json
并收到了错误代码。在许多系统上,代码 127 表示未找到命令(在本例中为
conda
)。调试问题的下一步是手动运行该命令:

$ conda info --json

$ conda info

如果我是对的,您将收到

command not found
消息。尝试重新安装 conda。


0
投票

我有同样的问题,并且我的环境没有损坏,当我在命令行运行 conda info -json 时,它返回 0。我尝试了上面的大锤,但没有成功。 任何人都可以解决这个问题。 最新版本更好吗?

© www.soinside.com 2019 - 2024. All rights reserved.