Bash Snakemake将conda激活命令更改为';康达激活';
我想在我的托管环境中将snakemake与fish shell和conda环境一起使用(基本上我没有根权限,默认的shell不能更改) 我在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“显然
.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
,或需要进行其他更改