如何从python文件运行bash脚本?



我想在python脚本中运行以下bash脚本。

condo activate bne
CUDA_VISIBLE_DEVICES=1 python bne.py --model models/BNE_SGsc --fe ./embeddings/BioEmb/Emb_SGsc.txt --fi names.txt --fo output_BNE_SGsc.txt

我的python脚本/函数如下-

def do_tensorflow_routine(path_name_file):
os.chdir(os.path.join("../","bne_resources/"))
os.system("conda activate bne")
bne_command = "python bne.py --model models/BNE_SGsc --fe ./embeddings/BioEmb/Emb_SGsc.txt --fi names.txt --fo names_bne_SGsc.txt"
subprocess.run(bne_command,shell=True)
pass

然而,我得到以下错误-

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.

我正在使用集群,我的系统规格如下-

Static hostname: lab1
Icon name: computer-server
Chassis: server
Machine ID: 104265a0ea5b48c1a3c5a9802294af66
Boot ID: 4277780744ae448292d66a9ff39c76e2
Operating System: Ubuntu 20.04.1 LTS
Kernel: Linux 5.8.0-36-generic
Architecture: x86-64

请让我知道,如果我错过了什么。我的基本问题是如何从给定的python脚本运行另一个python脚本,特别是当我们需要激活和停用虚拟环境时,因为由于一些依赖冲突,父python脚本和子python脚本需要2个不同的虚拟环境。请帮帮我。提前感谢,Megh

如果运行conda activate bne后终端未显示(base),则尝试运行:

conda init

在顶部的bash脚本中,您需要shebang行#!/usr/bin/env bash和env用于不同Linux发行版的可移植性。

相关内容

  • 没有找到相关文章

最新更新