Win10下sh脚本激活Conda虚拟环境并使用

已有文件

两个文件,分别为:

1. print_a_tensor.py,使用torch打印一个张量:

def show_tensor():
    try:
        import torch

    except:
        print('Nope.\n')

    else:
        x= torch.Tensor(2,2)
        print(x)   


if __name__ == '__main__':
    show_tensor()

2. activate_torch.sh,用于使用1的文件的脚本:

#!/bin/sh
log="sh_record.txt"

#注意这里是反引号,即tab键上面的那个
py_file=`python print_a_tensor.py`

echo $py_file > $log

Win10下sh脚本激活Conda虚拟环境并使用_第1张图片

双击.sh脚本后输出到日志中:

Win10下sh脚本激活Conda虚拟环境并使用_第2张图片


决: 

因为是默认环境没有装torch,自然没用,如果只是单纯的加上conda activate xxx是无效的,现提供三种可行的方法,注意我这里的pytorch是conda中的虚拟环境名。

第一种:

#!/bin/sh
log="sh_record.txt"

#加上这个语句,根据你自己的conda路径进行相应修改,注意斜杠变化
source C:/ProgramData/Anaconda3/Scripts/activate pytorch

py_file=`python print_a_tensor.py`
echo $py_file > $log

结果:

Win10下sh脚本激活Conda虚拟环境并使用_第3张图片

根据参考[2],这个方法在Mac OSX下也可以使用。


第二与第三种,只涉及一个修改,一起放上了:

#!/bin/sh
log="sh_record.txt"

#以下两个使用任意一个即可,同样注意路径与斜杠的调整

#method-1:
source C:/ProgramData/Anaconda3/etc/profile.d/conda.sh
conda activate pytorch

#method-2:
#eval "$(conda shell.bash hook)"
#conda activate pytorch


py_file=`python print_a_tensor.py`
echo $py_file > $log

结果:

Win10下sh脚本激活Conda虚拟环境并使用_第4张图片


 就这。

参考:

[1]Github的方法

[2]Stack Overflow的方法

你可能感兴趣的:(python,shell,windows,10,bash)