0

我不知道问题是在我和 Pyomo.DAE 之间还是在我和 IPOPT 之间。我在 Windows 上的 Ubuntu (WSL) 上使用 Bash 的命令行界面来完成这一切。当我运行时:

JAMPchip@DESKTOP-BOB968S:~/examples/dae$ python3 run_disease.py

我收到以下输出:

警告:无法找到求解器 ipopt Traceback 所需的“ipopt”可执行文件(最近一次调用最后一次):结果中的文件“run_disease.py”,第 15 行 = solver.solve(instance,tee=True) 文件“ /usr/lib/python3.6/site-packages/pyomo/opt/base/solvers.py”,第 541 行,在解决 self.available(exception_flag=True) 文件“/usr/lib/python3.6/site- packages/pyomo/opt/solver/shellcmd.py",第 122 行,可用 raise ApplicationError(msg % self.name) pyutilib.common._exceptions.ApplicationError: No executable found for solver 'ipopt'

当我在 IPOPT 构建文件夹中运行“make test”时,我收到:

测试 AMPL Solver Executable... 测试通过!测试 C++ 示例...测试通过!测试 C 示例...测试通过!测试 Fortran 示例... 测试通过!

但我的一个主要担忧是,在“配置”输出中是以下内容:

检查 COIN-OR 包 HSL... 未给出:未找到包“coinhsl”

当我运行“make”时,也有一些警告。我完全不确定问题出在哪里。如何让 python3 找到 IPOPT,以及如何判断系统上是否有 IPOPT 供 pyomo.dae 查找?我非常有信心在 HSL 文件夹中有“coibhsl”,那么如何确保它被 IPOPT 找到?

4

1 回答 1

0

正如 sascha 所说,您需要确保包含您的 IPOPT 可执行文件的目录(可能是build文件夹)在您的系统中PATH。这样,如果您要打开终端并ipopt从任意目录调用,它将被检测为有效命令。这与能够make test从 IPOPT 构建文件夹中调用不同。

于 2018-10-02T16:16:15.213 回答