Python Popen困难:找不到文件

1 python subprocess popen

我正在尝试使用python来运行程序.

from subprocess import Popen 
sa_proc = Popen(['C:\\sa\\sa.exe','--?'])
Run Code Online (Sandbox Code Playgroud)

运行这个小snippit会出错:

WindowsError:[错误2]系统找不到指定的文件

程序存在,我直接从资源管理器复制并粘贴到exe的绝对路径.我已经尝试过其他的东西,并且发现如果我将EXE放在带有python脚本的源文件夹中并使用'./sa.exe'那么它就可以了.我唯一能想到的是我从一个单独的分区(F :)运行python脚本(和python).

有任何想法吗?谢谢

Ale*_*lli 7

正如文档所说,"在Windows上:Popen类使用CreateProcess()来执行对字符串进行操作的子程序.如果args是一个序列,它将使用list2cmdline()方法转换为字符串." 也许这种方法搞砸了,所以为什么不尝试更简单的方法:

sa_proc = Popen('C:\\sa\\sa.exe --?')
Run Code Online (Sandbox Code Playgroud)

如果这仍然失败,那么:os.environ['COMSPEC']在你尝试之前是什么?如果添加会发生什么事, shell=TruePopen的论点?

编辑:结果显然是一个简单的错误拼写的情况,因为'sa'实际上是SpamAssassin拼写的程序 - 双倍的两次 - 而OP写的是spamassasin - 一个双s但是一个单一的第二次.