我目前正在使用 python 中的子进程模块进行脚本编写,尽管当我在 shell 中运行它并且尽管任何其他类型的命令在使用子进程模块执行时工作正常,但仍然无法执行命令“模块列表”命令。
我尝试过的两种变体:
p = subprocess.Popen('module list', shell=True)
print(p.communicate()[0])
和
p = Popen(["module", "list"], stdout=subprocess.PIPE)
print(p.communicate()[0])
对于诸如“echo hello world”之类的命令以及带有多个参数的更长命令,这些格式中的任何一种都可以正常工作。我运行命令的终端是否与用于使用子进程执行命令的 shell 不同?我得到的错误如下:
/bin/bash: line 1: module: command not found