我正在尝试使用 pyOptSparse 包安装 IPOPT 算法。我得到了 SNOPT 和 SLSQP 算法的工作。对于 IPOPT 算法,构建成功,但是在使用该算法时出现错误:
pyOptSparse Error: There was an error importing the compiled IPOPT module
我正在基于 Ubuntu 的 Docker 容器中构建项目,并且非常准确地遵循了 pyOptSparse 中 IPOPT 上的文档(doc/optimizers/pyipopt.rst)。完整的dockerfile是可用的(我已经包含了我使用基于 apt 的包的尝试,以及根据这个建议对源代码的一些复制)。最相关的部分是:
RUN wget http://www.coin-or.org/download/source/Ipopt/Ipopt-3.11.7.tgz && \
gunzip Ipopt-3.11.7.tgz && \
tar -xvf Ipopt-3.11.7.tar && \
rm -rf Ipopt-3.11.7.tar && \
mv Ipopt-3.11.7 /pyoptsparse/pyoptsparse/pyIPOPT/Ipopt && \
wget -P /pyoptsparse/pyoptsparse/pyIPOPT/Ipopt/ThirdParty/HSLold/ \
https://bitbucket.org/mdolab/pyoptsparse/downloads/ma27ad.f && \
cd /pyoptsparse/pyoptsparse/pyIPOPT/Ipopt/ThirdParty/Blas/ && \
./get.Blas && \
cd /pyoptsparse/pyoptsparse/pyIPOPT/Ipopt/ThirdParty/Lapack/ && \
./get.Lapack && \
cd /pyoptsparse/pyoptsparse/pyIPOPT/Ipopt && \
./configure --disable-linear-solver-loader && \
make install
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/pyoptsparse/pyoptsparse/pyIPOPT/Ipopt/lib
RUN cd pyoptsparse && \
python setup.py build_ext --inplace
在构建的输出中,pyOptSparse 选择了 IPOPT "building 'pyoptsparse.pyIPOPT.pyipoptcore' extension"。
有人对如何安装 IPOPT 算法或如何调试安装有任何建议吗?
谢谢!
补充说明:
- 我没有让 pyOptSparse 的 SLSQP 算法最新提交起作用,因此我使用的是去年年底的提交 fd33788。
- 我尝试了 --prefix=/usr/local 的各种组合,但如果有人对位置和环境变量有任何具体建议,我全都听