2

大家好。我有一个小问题:我正在使用 openmdao 和 pyOptSparseDriver。它适用于某些求解器(例如 SLSQP、PSQP),因此该安装没有问题。

现在我想对 IPOPT 进行同样的尝试,但是 pyoptsparse 没有给出代码。我按照 COIN-OR 文档安装了 IPOPT(http://www.coin-or.org/Ipopt/documentation/node10.html),一切看起来都很好(我不知道如何检查)。现在我的桌子上有一个 COIN-OR 文件夹,我不知道如何让 pyoptsparse 从中获取 IPOPT(它是“从 .import pyoptcore”行崩溃),来自 pyIPOPT/pyIPOPT.py。谁能帮我 ?提前谢谢你

4

2 回答 2

1

我们通过 pytoptsparse 包将 IPOPT 与 OpenMDAO 一起使用,并将其安装为独立库,就像您所做的那样。要使其正常工作,您需要IPOPT_DIR在运行 pyoptsparse 的安装之前将环境变量设置为指向您安装 IPOPT 的位置。

因此,假设您在 /usr/local/IPOPT 中安装了 IPOPT:

$ export IPOPT_DIR=/usr/local/IPOPT
$ cd /path/to/pyoptsparse/
$ python setup.py install

应该导致 pyoptsparse 为 IPOPT 编译 python 包装器并生成文件 pyoptcore.so ,该文件将放置在 Python 的site-packages/pyoptsparse/pyIPOPT.

在我们的集群上,我们必须pyoptsparse/pyIPOPT/setup.py稍微修改文件,因为我们使用 Intel 编译所有内容,但如果您使用 gfortran 编译,pyoptsparse 的官方版本应该适合您。

或者,您可以像贾斯汀建议的那样做,这基本上是您在 pyoptsparse 文档中找到的说明。

于 2016-08-02T16:29:11.720 回答
0

您必须将ipopt源代码放入pyopt-sparse的src文件夹中,然后重新编译该包。

于 2016-08-02T11:33:55.007 回答