Conda 4.10.3搭配5+版本Snakemake使用--use-conda报__conda_exe错误
问题核心原因
报错提示的__conda_exe : commande introuvable本质是Snakemake调用conda命令时触发的非交互子shell没有加载到conda的初始化配置,找不到conda对应的可执行文件。你手动提前激活环境能正常运行,是因为当前交互式shell已经完成了conda初始化,环境变量配置完整,但Snakemake自行启动的子shell没有继承到对应配置。
可行解决方案
方案1:提前加载conda初始化配置
执行Snakemake命令前,先加载对应shell的conda初始化脚本:
- 如果你使用bash:
source 你的conda安装路径/etc/profile.d/conda.sh - 如果你使用zsh:
source 你的conda安装路径/etc/profile.d/conda.zsh
加载完成后再执行你的Snakemake命令即可。
方案2:升级conda版本
你当前使用的conda 4.10.3版本存在已知的子进程调用bug,__conda_exe变量不会自动传递到子shell,升级conda到4.12及以上版本即可修复该问题:
conda update -n base conda
方案3:显式指定conda可执行文件路径
运行Snakemake前先设置CONDA_EXE环境变量指向你实际的conda可执行文件,或者增加--conda-frontend conda参数:
export CONDA_EXE=你的conda安装路径/bin/conda snakemake -p -d ./ -s 00_Quality_Check.smk -j 4 --use-conda --conda-frontend conda
方案4:升级Snakemake版本
Snakemake 7.0及以上版本重写了conda环境调用逻辑,对不同版本conda的兼容性更好,你可以尝试升级Snakemake后再运行:
conda install -n base -c bioconda -c conda-forge snakemake>=7.0
内容的提问来源于stack exchange,提问作者RipollJ
相关产品推荐
相关产品推荐

