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

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

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

请添加图片描述
这种情况,你只需要用source /home/zhaohuiyao/miniconda3/bin/activate ENV_NAME即可,再次运行shell脚本。

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

请添加图片描述

  1. 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 zhaohuiyao /etc/passwd

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐