从Python subprosess运行可执行文件的错误 [英] Error of running an executable file from Python subprosess

查看:212
本文介绍了从Python subprosess运行可执行文件的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从Python 3.5运行可执行文件(线性编程解算器CLP.exe)。

I am trying to run an executable file (a linear programming solver CLP.exe) from Python 3.5.

 Import subprocess

 exeFile = " C:\\MyPath\\CLP.exe"
 arg1 = "C:\\Temp\\LpModel.mps"
 arg2 = "-max"
 arg3 = " -dualSimplex"
 arg4 = " -printi all"
 arg5 = "-solution t solutionFile.txt"
 subprocess.check_output([exeFile, arg1, arg2, arg3, arg4, arg5],    stderr=subprocess.STDOUT, shell=False)

当我在Eclipse PyDev中运行python文件时,我可以在Eclipse控制台中看到结果。

When I run the python file in Eclipse PyDev, I can see the results in Eclipse console.

但是,解决方案的结果没有保存在solutionFile.txt的文件中。

But, no solution results are saved at the file of "solutionFile.txt".

在Eclipse中控制台,我得到:

In the Eclipse console, I got:

  b'Coin LP version 1.16, build Dec 25 2015
  command line - C:\\MyPath\\clp.exe C:\\Temp\\LpModel.mps  -max     -dualSimplex  -printi all  -solution C:\\Temp\\solution.txt 

 At line 1 NAME          ClpDefau
 At line 2 ROWS
 At line 5 COLUMNS
 At line 8 RHS
 At line 10 BOUNDS
 At line 13 ENDATA
 Problem ClpDefau has 1 rows, 2 columns and 2 elements
 Model was imported from C:\\Temp\\LpModel.mps in 0.001 seconds
 No match for  -max - ? for list of commands
 No match for  -dualSimplex - ? for list of commands
 No match for  -printi all - ? for list of commands
 No match for  -solution C:\\Temp\\solution.txt - ? for list of commands
 Presolve 0 (-1) rows, 0 (-2) columns and 0 (-2) elements
 Empty problem - 0 rows, 0 columns and 0 elements
 Optimal - objective value 4
 After Postsolve, objective 4, infeasibilities - dual 0 (0), primal 0 (0)
 Optimal objective 4 - 0 iterations time 0.002, Presolve 0.00

    C:\\MyPath\\clp.exe C:\\Temp\\LpModel.mps  -max  -dualSimplex  -printi all  -solution C:\\Temp\\solution.txt 

我可以在解决方案文件中获取结果。而且,如果我在命令行中运行命令,则粗体不会出现在输出中。

I can get results in the solution file. And, the bold lines do not appear in the output if I run the command in the command line.

为什么没有创建solition.txt文件,没有解决方案的结果是如果我从Python子进程运行命令保存到它?

Why the solition.txt file was not created and no solutions results were saved to it if I run the command from Python subprocess ?

推荐答案

每个空格分隔的标记都需要在数组中为 subprocess.check_output

Every space separated token needs to be another argument in the array for subprocess.check_output

exeFile = " C:\\MyPath\\CLP.exe"
subprocess.check_output([
    exeFile,
    "C:\\Temp\\LpModel.mps",
    "-max",
    "-dualSimplex",
    "-printi",
    "all",
    "-solution",
    "t",
    "solutionFile.txt"],
    stderr=subprocess.STDOUT,
    shell=False)

这篇关于从Python subprosess运行可执行文件的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆