python - 从Python子进程运行可执行文件时出错

标签 python eclipse python-3.x pydev clp

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

 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 控制台中看到结果。

但是,“solutionFile.txt”文件中没有保存任何求解结果。

在 Eclipse 控制台中,我得到:

  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

当我从命令行在 MS windows shell 中运行命令时:

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

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

如果我从 Python 子进程运行命令,为什么未创建 solition.txt 文件并且没有保存任何解决方案结果?

最佳答案

每个空格分隔的标记都需要是 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 - 从Python子进程运行可执行文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38928330/

相关文章:

python - 具有多个列的时间序列,每个列都有重复的条目。如何在 Pandas 中处理

python - 将相同字典键的值放在python中的一组中

Python 在多个索引中随机采样

Python-将带有大写和小写字符串元素的遗传数据(不带空格)拆分为列表

python - 如何使数据类中的属性只读?

python-3.x - 寻找通过 python 脚本将长文本发布到松弛的方法

python - 使用 jsonpath-ng 在 Python 中使用上下文更新 json 数据

linux - 无法在linux中的eclipse中调试java代码

android - 在 Eclipse 中找不到 AVD 或 SDK 管理器

eclipse - 如何在 Eclipse 中的 JSP/JSP 标签中获取 EL(表达式语言)内容辅助(自动完成)?