我正在尝试使用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).
有任何想法吗?谢谢
正如文档所说,"在Windows上:Popen类使用CreateProcess()来执行对字符串进行操作的子程序.如果args是一个序列,它将使用list2cmdline()方法转换为字符串." 也许这种方法搞砸了,所以为什么不尝试更简单的方法:
sa_proc = Popen('C:\\sa\\sa.exe --?')
Run Code Online (Sandbox Code Playgroud)
如果这仍然失败,那么:os.environ['COMSPEC']在你尝试之前是什么?如果添加会发生什么事, shell=True到Popen的论点?
编辑:结果显然是一个简单的错误拼写的情况,因为'sa'实际上是SpamAssassin拼写的程序 - 双倍的两次 - 而OP写的是spamassasin - 一个双s但是一个单一的第二次.
| 归档时间: |
|
| 查看次数: |
3879 次 |
| 最近记录: |