我正在使用奇异容器从Nextflow工作流管理系统运行命令。我在Singularity内部有一个conda环境,当我将其装入容器时可以激活它
singularity pull shub://brucemoran/Singularity:pcgr.centos7
singularity shell brucemoran-Singularity-pcgr.centos7.img
#<inside container>
source activate pcgr
当Nextflow执行时,我定义了source activate pcgr
我认为应该激活conda env的对象。但是我得到unbound variable HOST
警告。我认为这与非激活以及随后使用的变量有关,如果env被激活,则应该定义这些变量(?)。
我希望容器在执行时激活env(pcgr)。我尝试过
%run
source activate pcgr
和
%post
source activate pcgr
但这对我不起作用
singularity exec pcgr.img which pcgr.py
which: no pcgr.py in ...
我看不到这是怎么做的,但是我认为这很容易,而且我在很大程度上忽略了某些事情!
帮助表示赞赏。
奇异的外壳在特殊的环境中运行,因此对标准的conda修改.bashrc
不起作用。相反,您需要修改$ SINGULARITY_ENVIRONMENT变量。奇点定义文件中的以下几行应该可以正常工作:
# set to whatever your conda path is, I usually install to /opt
echo ". /opt/conda/etc/profile.d/conda.sh" >> $SINGULARITY_ENVIRONMENT
echo "conda activate pcgr" >> $SINGULARITY_ENVIRONMENT
这样,conda环境将自动被激活。如果您喜欢在步骤中手动激活它,则可以省略第二行,并在%run
步骤中进行激活。
编辑:更改为使用,.
而不是与source
兼容/bin/sh
,在下面的评论中提到
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句