Ubuntu Server 20环境下Ipopt 3.11.1求解器安装失败问题求助
解决Ubuntu Server 20中conda安装Ipopt后liblapack.so.3缺失的问题
我之前在Ubuntu Server 20上用conda安装Ipopt时遇到过一模一样的错误!这个问题的核心是conda安装的Ipopt依赖系统级的lapack共享库,而你的系统里刚好没装或者环境变量没配置正确。下面是我亲测有效的解决步骤:
方法1:安装系统级lapack库
首先检查系统是否已安装lapack:
dpkg -l | grep lapack
如果输出里没有liblapack3,那就执行以下命令安装:
sudo apt update && sudo apt install liblapack3 liblapack-dev
liblapack3是运行时所需的共享库,liblapack-dev是开发相关的文件,一起安装能避免后续可能的其他依赖问题。安装完成后再运行Ipopt应该就能正常启动了。
方法2:配置LD_LIBRARY_PATH环境变量
如果已经安装了lapack但还是报错,大概率是conda环境没找到系统库的位置。可以手动把系统库路径添加到环境变量中:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
执行完这个命令后再试试运行ipopt。如果想让这个配置永久生效,把它添加到你的bash配置文件里:
echo 'export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
方法3:指定安装你需要的Ipopt 3.11.1版本
你原本想安装的是3.11.1,但conda默认给你装了3.13.2,新版本可能对系统库的要求更高。试试直接指定版本安装:
conda install -c conda-forge ipopt=3.11.1
这个版本对Ubuntu Server 20的系统库兼容性通常更好,安装后应该不会再出现依赖问题。
如果以上方法都没解决,那可以考虑从源码编译Ipopt,但步骤会繁琐很多,优先试试上面的三种方法。
内容的提问来源于stack exchange,提问作者noreddine damane
相关产品推荐
相关产品推荐

