numpy.disutils.system_info.NotFoundError: 找不到lapack/blas资源。

7
问题:将numpy链接到正确的线性代数库。这个过程非常复杂,我可能已经第六次寻找解决方案了,但我不知道哪里出了问题。我使用的是Ubuntu 12.04.5。 我重新安装了blas和lapack,然后使用pip重新安装了numpy。我在系统环境中进行了操作,也尝试在虚拟环境中进行了操作。但是似乎没有一件事情能够正常工作。
以下是我的numpy.__config__.show()输出结果:
lapack_info:
  NOT AVAILABLE
lapack_opt_info:
  NOT AVAILABLE
openblas_lapack_info:
  NOT AVAILABLE
blas_info:
  NOT AVAILABLE
atlas_3_10_blas_threads_info:
  NOT AVAILABLE
atlas_threads_info:
  NOT AVAILABLE
blas_src_info:
  NOT AVAILABLE
atlas_3_10_threads_info:
  NOT AVAILABLE
atlas_blas_info:
  NOT AVAILABLE
atlas_3_10_blas_info:
  NOT AVAILABLE
lapack_src_info:
  NOT AVAILABLE
atlas_blas_threads_info:
  NOT AVAILABLE
openblas_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
blas_opt_info:
  NOT AVAILABLE
atlas_info:
  NOT AVAILABLE
atlas_3_10_info:
  NOT AVAILABLE
lapack_mkl_info:
  NOT AVAILABLE
mkl_info:
  NOT AVAILABLE

这是一个非常常见的错误,并且根据用户的环境和历史记录,有很多解决方案。我最近按照这里的说明,经历了安装BLAS和LAPACK的整个过程:https://dev59.com/Fms05IYBdhLWcg3wB9ef#9173550。我成功地安装了两者。
然而,最初我有这些库:(ls /usr/lib | grep blas
libopenblas.so.0
openblas-base/
libblas.so.3gf
libblas.3

我该如何将numpy与线性代数库链接起来?是否必须拥有所有的线性代数库,例如lapack、blas和atlas?

我假设一旦numpy被链接,所有其他模块,如scipy和Orange,都可以正常工作。


3
请看这里:https://dev59.com/YWEi5IYBdhLWcg3wFou9。另外,从源代码构建BLAS/LAPACK库可能有些过度,因为它们可以从标准的Ubuntu软件源获取(例如,`sudo apt-get install libopenblas-dev`)。 - ali_m
4个回答

12

你可能有未满足的依赖关系。当我遇到这个错误时,我通过安装两个软件包来解决了问题:

sudo apt-get install libblas-dev  liblapack-dev

2
我知道这个问题是针对Ubuntu的,但您是否知道如何在Windows上解决相同的问题? - ChickenFeet

3

安装以下库(Ubuntu 20.04):

sudo apt-get install libatlas-base-dev libblas3 liblapack3 liblapack-dev libblas-dev gfortran

然后使用pip安装Python软件包。


1

如果有人在FreeBSD上安装Scipy时遇到类似问题,可以通过使用pkg命令在系统上安装必要的软件包来很容易地解决问题:

pkg install blas
pkg install lapack

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接