我试图使用Python运行程序。

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

运行该小SNIPPIT给出了错误:

  

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

在程序中存在和我复制并直接从资源管理器粘贴到该exe的绝对路径。我曾尝试其他的东西,已经发现,如果我把EXE源文件夹使用Python脚本,并使用“./sa.exe”,那么它的工作原理。我能想到的唯一的事情是,我是从一个单独的分区(F:)运行python脚本(和python)。

任何想法? 感谢

有帮助吗?

解决方案

由于 说的文档“,在Windows :所述POPEN类使用的CreateProcess()来执行子方案,该方案对字符串进行操作如果ARGS是一个序列,它会被转换为使用list2cmdline()方法的字符串“。也许这方法是搞乱的东西了,所以为什么不尝试的更简单的方法:

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

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

修改:原来显然是简单的误spellling的情况下,为“SA”实际上是拼写的SpamAssassin程序 - 双S两次 - 和什么OP在写是spamassasin - 一个双S但单一的一个第二时间

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top