1
我想在我的python代码中使用subprocess.call调用模块和模块laod,这是类似这样的。如何使用子进程运行命令模块?
subprocess.call(['module avail calibre','&','module load calibre'])
但是当我运行这段代码,它返回:
OSERROR (2, '没有这样的文件或目录')
任何帮助有关子?
我想在我的python代码中使用subprocess.call调用模块和模块laod,这是类似这样的。如何使用子进程运行命令模块?
subprocess.call(['module avail calibre','&','module load calibre'])
但是当我运行这段代码,它返回:
OSERROR (2, '没有这样的文件或目录')
任何帮助有关子?
如果你尝试运行这个shell命令:
$ module avail calibre & module load calibre
与子尝试:
subprocess.call(['module','avail','calibre','&','module','load','calibre'])
或:
subprocess.call('module avail calibre & module load calibre',shell=True)
得到这个reult运行的第二个和第一个仍然给出相同的OSERROR/bin/sh:module:找不到命令 /bin/sh:calibredrv:command找不到 /bin/sh:module:command not found – Karan
这意味着你的python解释器找不到'module'可执行文件。你可以尝试使用绝对路径,例如:'subprocess.call(['/ abs/path/to/module','avail','calibre','&','/ abs/path/to/module' ,'load','calibre'])' – Enrico
@Enrico该命令行预计会被shell解释。它不会在没有外壳的情况下按预期工作。在第一种情况下,'&'和后面的参数将作为参数传递给“module”命令。 – Keith