Python subprocess.popen在windows而不是ubuntu上工作

Python subprocess.popen在windows而不是ubuntu上工作,python,subprocess,Python,Subprocess,我正在尝试创建一个新进程,以使用以下代码运行另一个python文件 proc = subprocess.Popen(["python test.py"],shell=True)#,stdout=DEVNULL, stderr=STDOUT proc.wait() 它在Windows上工作,但当我在ubuntu控制台中尝试时。它将触发python控制台/解释器,而不是运行python文件。 任何帮助都将不胜感激您必须将参数python和test.py分开才能正常工作: proc = subpro

我正在尝试创建一个新进程,以使用以下代码运行另一个python文件

proc = subprocess.Popen(["python test.py"],shell=True)#,stdout=DEVNULL, stderr=STDOUT
proc.wait()
它在Windows上工作,但当我在ubuntu控制台中尝试时。它将触发python控制台/解释器,而不是运行python文件。
任何帮助都将不胜感激

您必须将参数
python
test.py
分开才能正常工作:

proc = subprocess.Popen(["python", "test.py"],shell=True)
proc.wait()

正如我在预览答案中所评论的,如果您不需要它,请参阅,使用此选项会带来严重的安全隐患,请不要使用
shell=True

工作示例:

╭─root@debi /tmp
╰─# cat 1.py
def main():
  print("ok")

if __name__ == '__main__':
    main()
╭─root@debi /tmp
╰─# cat 2.py
import subprocess

def main():
    proc = subprocess.Popen(["python", "1.py"])
    proc.wait()

if __name__ == '__main__':
    main()
╭─root@debi /tmp
╰─# python3 2.py
ok
╭─root@debi /tmp
╰─#

我强烈建议您创建一个最小的、可复制的示例(stackoverflow.com/help/minimal repeatable example)来演示您的问题。
shell=True
的要点是什么?至少要提到安全问题!