安装pyipopt,遇到致命错误:IpStdCInterface.h:没有这样的文件或目录

安装pyipopt,遇到致命错误:IpStdCInterface.h:没有这样的文件或目录

这个问题是关于在 Ubuntu 上安装库/接口的尝试。这是一个非常具体的问题,但任何一般性的帮助(例如,解释哪个脚本,或者错误来自哪个特定脚本)也将不胜感激。我对 Ubuntu 和这个论坛还很陌生,所以如果这是一个不相关的问题(或者有任何其他问题),请告诉我!

背景

我正在尝试安装派派普特在 Ubuntu 上,安装后艾波普特。Ipopt 是一个库,而 pyipopt 旨在作为库与 python 之间的接口。pyipopt 和 Ipopt 的目录是分开的。我已经setup.py对 pyipopt 进行了编辑。所做的编辑之一setup.py是指定 Ipopt 库的安装路径。然后我python3 setup.py build按照 pyipopt github(上面链接)上的说明运行。这是它产生的错误:

[myusername]:~/pyipopt$ python3 setup.py build
running build
running build_py
running build_ext
building 'pyipoptcore' extension
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/lib/python3/dist-packages/numpy/core/include -I/home/bandgeek108/Ipopt_coinbrew/~/Ipopt_coinbrew/include/coin/ -I/usr/include/python3.8 -c src/callback.c -o build/temp.linux-x86_64-3.8/src/callback.o
In file included from src/callback.c:36:
src/hook.h:5:10: fatal error: IpStdCInterface.h: No such file or directory
    5 | #include "IpStdCInterface.h"
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

到目前为止我尝试过

我四处寻找,并设法找到它,IpStdCInterface.h所以我知道它存在。但是,我不知道如何“帮助”脚本找到此文件。丢失的文件位于路径中~/Ipopt_coinbrew/Ipopt/src/Interfaces,而我在中指定的 Ipopt 库的路径setup.py~/Ipopt_coinbrew/~/Ipopt_coinbrew;我怀疑这就是 pyipopt 构建脚本无法找到所需文件的原因。但是,如果我将路径扩展为setup.py~/Ipopt_coinbrew则会产生另一个错误:

[myusername]:~/pyipopt$ python3 setup.py build
Traceback (most recent call last):
  File "setup.py", line 36, in <module>
    raise Exception('failed to find ipopt lib')
Exception: failed to find ipopt lib

我也尝试将Interfaces目录复制到我在中指定的原始路径中setup.py,但出现相同的第一个错误(仍然无法找到文件)。

有人知道我可以尝试的其他方法吗?

编辑: 我正在使用 Ubuntu 20.04,这是几周前我从 Windows 商店下载的默认版本。

此外,我在过去几天尝试了更多方法,并将 Ipopt 重新安装到 中/usr/local/lib。现在在 中找到了丢失的文件/usr/local/include/coin-or。但是,在 中将 IPOPT 目录setup.py设置为 的情况下运行构建/usr/local仍然会出现相同的第一个错误(无法找到 StdCInterface.h)。

相关内容