Alpine Linux下pip安装cvxopt遇-llapack/-lblas缺失问题求解
解决Alpine Linux上pip安装cvxopt时找不到-llapack和-lblas的问题
问题根源是Alpine Linux中openblas-dev提供的BLAS/LAPACK库文件名为libopenblas.so,但cvxopt的编译脚本默认查找标准命名的libblas.so和liblapack.so,导致链接器无法定位对应库文件。以下是两种可行解决办法:
方法一:创建软链接映射标准库名
在Dockerfile中安装依赖后,添加软链接创建命令,让系统识别标准库名:
apk add --no-cache \ gfortran \ cmake \ python3 \ py3-scipy \ py3-numpy \ graphviz \ xdg-utils \ libxml2-dev \ libxslt \ openblas-dev # 将openblas映射为blas和lapack标准库 ln -s /usr/lib/libopenblas.so /usr/lib/libblas.so && \ ln -s /usr/lib/libopenblas.so /usr/lib/liblapack.so pip install cvxopt
方法二:通过环境变量指定BLAS/LAPACK库路径
执行pip install前设置环境变量,告诉cvxopt编译时使用openblas库:
apk add --no-cache \ gfortran \ cmake \ python3 \ py3-scipy \ py3-numpy \ graphviz \ xdg-utils \ libxml2-dev \ libxslt \ openblas-dev export BLAS=/usr/lib/libopenblas.so export LAPACK=/usr/lib/libopenblas.so pip install cvxopt
验证方式
若使用提供的镜像复现问题,进入容器后执行上述任一方案的命令,再运行pip install cvxopt即可完成安装。
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

