Python 在英特尔Mac OS X上与Pyomo一起使用路径AMPL解算器

Python 在英特尔Mac OS X上与Pyomo一起使用路径AMPL解算器,python,macos,executable,nonlinear-optimization,pyomo,Python,Macos,Executable,Nonlinear Optimization,Pyomo,我正在尝试在MacOSX(10.11,英特尔)上与Pyomo一起使用路径解算器()。我正在使用Python 3.5的最新Anaconda安装 Pyomo可以利用AMPL库。从中,我尝试运行以下示例: `# file munson1.py from pyomo.environ import * from pyomo.mpec import * model = ConcreteModel() model.x1 = Var() model.x2 = Var() model.x3 = Var() mod

我正在尝试在MacOSX(10.11,英特尔)上与Pyomo一起使用路径解算器()。我正在使用Python 3.5的最新Anaconda安装

Pyomo可以利用AMPL库。从中,我尝试运行以下示例:

`# file munson1.py
from pyomo.environ import *
from pyomo.mpec import *
model = ConcreteModel()
model.x1 = Var()
model.x2 = Var()
model.x3 = Var()
model.f1 = Complementarity(expr=
complements(model.x1 >= 0,
model.x1 + 2*model.x2 + 3*model.x3 >= 1))
model.f2 = Complementarity(expr=
complements(model.x2 >= 0,
model.x2 - model.x3 >= -1))
model.f3 = Complementarity(expr=
complements(model.x3 >= 0,
model.x1 + model.x2 >= -1))`
应该使用
pyomo solve--solver=path munson1.py从bash运行

为了实现这一点,我应该使用可执行的pathampl(用于AMPL的路径解算器)并将其放在$PATH中。我使用了两个版本(可从PATH网站获得):

MacOSX版本似乎是为PowerPC设计的,它显示的内容与“错误的CPU版本”一致

或者,我尝试了Linux版本,但是pyomo命令返回
Solver(path)返回非零返回代码(-1)
。单独调用pathampl会显示
/usr/local/bin/pathampl:无法执行二进制文件


有人知道如何使它工作吗?谢谢

如果系统上可执行文件的名称为“pathampl”,则需要将其用作Pyomo的解算器名称。其原因与Pyomo如何与它无法识别的解算器交互有关


Pyomo为某些解算器提供了自定义接口,但当您要求它使用它无法识别的解算器(Path的情况)时,它会退回到一个更通用的接口,该接口适用于任何设计用于AMPL的解算器可执行文件。发生这种情况时,它假定您提供的解算器名称是系统上某个可执行文件的名称。

我还没有尝试在MacOS上使用pathampl。我建议直接运行该命令。运行:
pyomo convert--format=nl--output=munson1.nl munson1.py
生成nl文件,然后直接应用解算器:
pathampl munson1.nl