Невозможно установить IPOPT для Python (отсутствует зависимость от библиотеки)
Я построил IPOPT из источника в /usr/local/
Затем я попытался установить ipopt для Python python setup.py install
Однако установщик пожаловался (ошибка), что не может найти IpStdCInterface.h
Затем я изменил содержимое файла setup.py следующим образом: (строки 1 и 3 имели неправильные пути)
IPOPT_ICLUDE_DIRS=['/usr/local/include/coin']
IPOPT_LIBS=['ipopt', 'coinhsl', 'coinlapack', 'coinblas', 'coinmumps', 'coinmetis']
IPOPT_LIB_DIRS=['/usr/local/lib/']
IPOPT_DLL=None
Я изменил первую и третью строку, чтобы указать на правильный каталог.
Теперь lib
Путь к каталогу (в третьей строке выше) содержит файл библиотеки с именами libipopt.so, libipopt.so.0, libipopt.la (то же имя, разные расширения).
Настройка сейчас не на что жаловаться IpStdCInterface.h
но он не может найти libs
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/src/cyipopt.o -L/usr/local/lib/ -lipopt -lcoinhsl -lcoinlapack -lcoinblas -lcoinmumps -lcoinmetis -o build/lib.linux-x86_64-2.7/ipopt/cyipopt.so
/usr/bin/ld: cannot find -lcoinhsl
/usr/bin/ld: cannot find -lcoinlapack
/usr/bin/ld: cannot find -lcoinblas
/usr/bin/ld: cannot find -lcoinmumps
/usr/bin/ld: cannot find -lcoinmetis
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Эти библиотеки должны быть предоставлены в файле libipopt.so? Или мне нужно установить какой-то другой пакет?
0 ответов
Ну, у меня такая же проблема, как и у тебя. Мое решение было добавить следующие команды в.bashrc:
export IPOPT_HOME="/opt/CoinIpopt"
export PATH="${PATH}:${IPOPT_HOME}/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${IPOPT_HOME}/lib"
/ opt / CoinIpopt - это путь, по которому был установлен IpOpt.