我认为您的
COMSPEC环境变量可能有问题:
>>> import os>>> os.environ['COMSPEC']'C:\Windows\system32\cmd.exe'>>> import subprocess>>> subprocess.call('dir', shell=True) (normal output here)>>> os.environ['COMSPEC'] = 'C:\nonexistent.exe'>>> subprocess.call('dir', shell=True)Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:Python27libsubprocess.py", line 493, in call return Popen(*popenargs, **kwargs).wait() File "c:Python27libsubprocess.py", line 679, in __init__ errread, errwrite) File "c:Python27libsubprocess.py", line 896, in _execute_child startupinfo)WindowsError: [Error 2] The system cannot find the file specified正如追溯所指出的那样,我通过深入
subprocess.py并研究
_execute_child函数来发现了这个潜在问题。在这里,您将找到一个以
ifshell:该块开头的块,它将在环境中搜索所述变量,并使用它来创建用于启动该过程的参数。



