如何在shell脚本中激活conda虚拟环境

在shell脚本中激活conda虚拟环境

常用命令行激活conda的env的命令有2种:
conda activate ENV_NAME
source /home/zhaohuiyao/minconda3/bin/activate ENV_NAME
但是如果你想在一个shell脚本中激活conda的env,有许多办法。我这里只提供了一种我使用的。

情况1: 直接使用conda activate ENV_NAME 会报错

Case 1

这种情况,你只需要用source /Your/Path/miniconda3/bin/activate ENV_NAME即可,再次运行shell脚本。

完整流程:
首先,将需要的R脚本单独写进work.R 中
然后在work.sh 中写
source /Your/Path/miniconda3/bin/activate ENV_NAME
Rscript work.R
即可

情况2: 出现source:not found的报错情况,这与你的linux版本有关以及shell解析器有关

case 2

ubuntu系统的默认shell解析器是dash,你需要将dash改成bash,要root权限,我没有。(Centos就不会有这个问题)
查看系统版本信息命令:cat /proc/version
查看默认解析器命令:ls -l /bin/sh

最简单:你的shell首行是#!/bin/bash,那么你只需要在执行脚本时用/bin/bash ./run.sh 即可,就能识别source命令
因为我们一般执行shell脚本的方法是:
①提高权限:chomd 775 ./run.sh,然后直接./run.sh
②直接:sh ./run.sh
这两种都是用默认shell解析器,而Ubuntu默认是dash,因此会有冲突
当然如果你有root权,你可以,
dpkg-reconfigure dash,选择no,之后再次运行ls -l /bin/sh,就会是/bin/sh -> bash
查看自己shell解析器:grep your-name /etc/passwd

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容