Bash Snakemake将conda激活命令更改为';康达激活';

Bash Snakemake将conda激活命令更改为';康达激活';,bash,conda,snakemake,fish,Bash,Conda,Snakemake,Fish,我想在我的托管环境中将snakemake与fish shell和conda环境一起使用(基本上我没有根权限,默认的shell不能更改) 我在.bashrc中使用此技巧将fish设置为“默认”shell: if[“$REALBASH”!=“1”];然后 中的大小写“$-” *i*) 导出SHELL=/usr/bin/fish tty>/dev/null&&echo“您的~/.bashrc正在将交互式SHELL切换为$SHELL” [-x$SHELL]&&exec$SHELL“$@” echo“显然

我想在我的托管环境中将snakemake与fish shell和conda环境一起使用(基本上我没有根权限,默认的shell不能更改)

我在
.bashrc
中使用此技巧将fish设置为“默认”shell:

if[“$REALBASH”!=“1”];然后
中的大小写“$-”
*i*)
导出SHELL=/usr/bin/fish
tty>/dev/null&&echo“您的~/.bashrc正在将交互式SHELL切换为$SHELL”
[-x$SHELL]&&exec$SHELL“$@”
echo“显然$SHELL在此不可用。继续使用bash。”
导出SHELL=/bin/bash
;;
以撒
fi
还有一个命令
realbash
,用于设置环境变量
realbash=1
,以绕过此攻击

我设法让conda使用fish来处理fish,但它的缺点是,在fish中,激活conda环境的命令与bash不同。在bash中,命令是
source activate…
,在fish中是
conda activate…

激活环境既可以从bash使用
source activate…
激活环境,也可以从fish使用
conda activate…
激活环境

当我现在执行snakemake from fish时,我得到以下错误:

正在激活conda环境。。。
来源:寻源文件“激活”时遇到错误:
来源:没有这样的文件或目录
如果我从bash执行snakemake,同样的错误也会发生

如果我通过
snakemake--overwrite shellcmd realbash
从bash执行snakemake,我会得到相同的错误,并最终进入snakemake打开的bash shell。只有在键入exit之后,snakemake才会完成(当然,没有成功)。 如果我通过
snakemake--overwrite shellcmd realbash
从fish执行snakemake,同样的行为也会发生

我被
--overwrite shellcmd
的行为弄糊涂了,有没有办法让我的hack工作? 否则,我是否可以将snakemake配置为调用
conda activate
,而不是
source activate

或者有其他解决方案吗?

显然,这是旧版本的
snakemake
中的一个bug。问题中描述的效果是通过
snakemake 4.3.1
产生的

在安装了
snakemake 5.17.0
conda
环境中运行
snakemake
,与问题中所述的设置完美配合。无
--覆盖shellcmd
,或需要进行其他更改