[英]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.