Python Popen困难:找不到文件

时间:2009-07-24 23:02:08

标签: python subprocess popen

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

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

运行这个小snippit会出现错误:

  

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

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

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:7)

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

sa_proc = Popen('C:\\sa\\sa.exe --?')

如果仍然失败,那么:在您尝试此之前是什么os.environ['COMSPEC']?如果您将, shell=True添加到Popen的参数会发生什么?

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

答案 1 :(得分:0)

您可能没有权限执行C:\ sa \ sa.exe。您是否尝试过手动运行程序?

相关问题