如何运行'module load< > '来自python脚本中的命令

时间:2016-10-18 22:09:00

标签: python shell

我尝试使用os.system()subprocess.call()subprocess.Popen() {使用和不使用选项shell=True }来执行module load ___在我的python脚本中。即使脚本成功运行并且它提到我的模块已经加载到终端中,我也无法使用它。我正在开发一个ssh客户端。当我直接将它作为命令行运行时,module load _____工作正常。

1 个答案:

答案 0 :(得分:0)

我认为问题是os.system和subprocess都在......井,子进程中运行命令。因此,模块在子进程上下文中成功加载,并立即存在。但是在python的进程上下文中没有任何影响。

我现在不在电脑附近尝试一下,这应该可行:

run_py.sh:

pyfile=$1
shift 1
python $pyfile $(tty) $@ &

这将运行你的python文件,第一个参数是当前tty设备的路径,所有其他参数如下。 解析参数,将tty设备路径保存到tty_dev。现在你可以运行:

os.system('echo "module load <>" > ' + tty_dev)