1

为什么以下不起作用?

import subprocess

process = subprocess.Popen('cmd.exe', shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)


我得到的输出如下:

The process tried to write to a nonexistent pipe.
The process tried to write to a nonexistent pipe.
The process tried to write to a nonexistent pipe.
The process tried to write to a nonexistent pipe.
The process tried to write to a nonexistent pipe.

之后,该过程终止而没有错误。我正在运行 Windows 7。

4

2 回答 2

1

尝试:

import subprocess
subprocess.run(["echo", "Hello, world!"], shell=True)

这使用默认的 stdout 和 stderr,而不是创建 PIPE。

于 2020-06-30T17:53:54.423 回答
1

我正在运行 Windows 10 并遇到同样的问题。如果我将 stdout 和 stderr 设置为相同的值,错误就会消失。尝试将它们都设置为 subprocess.PIPE 而不仅仅是标准输出。

于 2020-02-17T02:28:42.200 回答