[英]How to run 'module load < > ' command from within python script
我尝试使用os.system()
subprocess.call()
和subprocess.Popen()
{ 具有和不具有选项shell=True
}执行module load ___
从我的Python脚本内。 即使脚本成功运行并且提到我的模块已在终端中加载,我也无法使用它。 我正在使用SSH客户端。 当我直接以命令行运行它时, module load _____
可以正常工作。
我相信问题在于os.system和子进程都在一个...子进程中运行命令。 因此,该模块已在子流程上下文中成功加载,并且立即存在。 虽然在python的进程上下文中没有影响。
我现在不在电脑旁尝试一下,这应该可以工作:
run_py.sh:
pyfile=$1
shift 1
python $pyfile $(tty) $@ &
这将使用第一个参数运行当前tty设备的路径来运行python文件,所有其他参数都将跟随。 解析参数,将tty设备路径保存到tty_dev。 现在您可以运行:
os.system('echo "module load <>" > ' + tty_dev)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.