我正在尝试使用 python 来运行程序。
from subprocess import Popen
sa_proc = Popen(['C:\\sa\\sa.exe','--?'])
运行这个小片段会出现错误:
WindowsError: [Error 2] The system cannot find the file specified
程序存在,我已经直接从资源管理器复制并粘贴到 exe 的绝对路径。我尝试了其他方法,发现如果我将 EXE 放在带有 python 脚本的源文件夹中并使用“./sa.exe”,那么它就可以工作。我唯一能想到的是我正在从一个单独的分区 (F:) 运行 python 脚本(和 python)。
有什么想法吗? 谢谢
请您参考如下方法:
作为the docs比如说,“在 Windows 上:Popen 类使用 CreateProcess() 来执行子程序,该子程序对字符串进行操作。如果 args 是一个序列,它将使用 list2cmdline() 方法转换为字符串。”。也许那个方法把事情搞砸了,那么为什么不尝试更简单的方法:
sa_proc = Popen('C:\\sa\\sa.exe --?')
如果仍然失败,那么:在您尝试之前,os.environ['COMSPEC'] 是什么?如果将 , shell=True 添加到 Popen 的参数中会发生什么情况?
编辑:结果显然是简单的拼写错误,因为“sa”实际上是拼写为 SpamAssassin 的程序——双 s 两次——而 OP 写的是 spamassasin -- 一个 double s 但第二次是一个 single s。
