FileNotFoundError: [WinError 2] The system can't find the specified file
FileNotFoundError: [WinError 2] The system can't find the specified file
我目前正在学习如何使用模块 subprocess
,我刚刚开始学习我的新书。立即,我收到一条我不理解的错误消息。
Traceback (most recent call last):
File "D:/me/Python/subprocess.py", line 3, in <module>
proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE)
File "C:\Python34\lib\subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system can't find the specified file
我想不通这里有什么问题:
import subprocess
proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE)
out, err = proc.communicate()
print(out.decode('utf-8'))
在书中他们说这段代码应该在屏幕上打印 'Hello there' 但由于某些原因,它没有。
这里有什么问题?我目前正在使用 python 3.4.3,如果对您有帮助的话。
echo
不是可以执行的程序,而是 Windows 命令行解释器中可用的 shell 命令 cmd.exe
.
为了执行shell命令,你需要将shell=True
传递给Popen
:
proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE, shell=True)
# ^^^^^^^^^^
我目前正在学习如何使用模块 subprocess
,我刚刚开始学习我的新书。立即,我收到一条我不理解的错误消息。
Traceback (most recent call last):
File "D:/me/Python/subprocess.py", line 3, in <module>
proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE)
File "C:\Python34\lib\subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system can't find the specified file
我想不通这里有什么问题:
import subprocess
proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE)
out, err = proc.communicate()
print(out.decode('utf-8'))
在书中他们说这段代码应该在屏幕上打印 'Hello there' 但由于某些原因,它没有。
这里有什么问题?我目前正在使用 python 3.4.3,如果对您有帮助的话。
echo
不是可以执行的程序,而是 Windows 命令行解释器中可用的 shell 命令 cmd.exe
.
为了执行shell命令,你需要将shell=True
传递给Popen
:
proc = subprocess.Popen(['echo', 'Hello there'], stdout=subprocess.PIPE, shell=True)
# ^^^^^^^^^^