用 LAPACK/BLAS 安装 numpy 的最简单方法是啥?

Posted

技术标签:

【中文标题】用 LAPACK/BLAS 安装 numpy 的最简单方法是啥?【英文标题】:What is the easiest way to install numpy with LAPACK/BLAS?用 LAPACK/BLAS 安装 numpy 的最简单方法是什么? 【发布时间】:2014-11-15 03:19:19 【问题描述】:

我使用的是 Ubuntu 14.04。

我本来希望这样做:

sudo apt-get install python-numpy

本来可以,但事实并非如此......

我尝试检查的方式是通过 locate blas 进行检查,但没有发现任何相关的内容。

我想要一个不涉及我从源代码编译的解决方案。

理想的解决方案是使用 ubuntu 存储库。

【问题讨论】:

【参考方案1】:

在 Ubuntu 14.04 及更高版本中,blas 和 lapack 作为 python-scipy 和 python3-scipy 的一部分安装,因此您需要安装 python-scipy。在 Ubuntu 18.04 及更早版本中打开终端并输入:

sudo apt install python-scipy  

此命令还将安装 libblas3(基本线性代数子程序参考实现,共享库)和 liblapack3(线性代数例程库 3 - 共享版本)作为依赖项,如果您不这样做,它还将安装 python-numpy 作为依赖项'尚未安装。

【讨论】:

为了获得此答案的最佳效果,如果您使用pip 和命令sudo pip uninstall python-numpy 安装它,请首先卸载python-numpy 包。 另见:Find out if/which BLAS library is used by Numpy【参考方案2】:

你试过用 pip 吗?

sudo pip install numpy

如果你没有 pip 安装 pip 并附上说明here

【讨论】:

还没有尝试过 pip... 通常我对使用 pip 有点偏见,因为要正确使用它,我似乎必须做一些听起来不那么容易的虚拟环境的东西。如果没有存储库解决方案 pip 可能是下一个最好的选择。除非我错过了什么…… 我发现 pip 在遇到问题时可以正常工作。善于解决问题 我应该先卸载我通过sudo apt-get安装的numpy吗? 它不起作用,给了我一堆错误,找不到 fortran 编译器和一大堆其他东西...... 另外,似乎没有尝试下载 LAPACK /BLAS 库,但希望我已经完成了..【参考方案3】:

我对 anaconda 包管理器有很好的经验(学习花了我 1-2 小时)。在我看来,它比 venv 更容易使用,并且比单独的 pip/env 更灵活。下载和设置后,您已经准备好大部分软件包,例如 numpy。所以再也没有这样的问题了!

【讨论】:

【参考方案4】:

numpy.show_config() 透露我没有 BLAS 支持,即使 python3-scipy 已经安装。卸载并重新安装python3-scipypython3-numpy 修复它:

sudo apt-get remove python3-scipy python3-numpy
sudo apt-get install python3-scipy python3-numpy

现在我有了 LAPACK/BLAS 支持:

>>> numpy.show_config()
openblas_lapack_info:
  NOT AVAILABLE
mkl_info:
  NOT AVAILABLE
atlas_3_10_blas_threads_info:
  NOT AVAILABLE
lapack_info:
    libraries = ['lapack', 'lapack']
    language = f77
    library_dirs = ['/usr/lib']
atlas_3_10_blas_info:
  NOT AVAILABLE
openblas_info:
  NOT AVAILABLE
blas_opt_info:
    libraries = ['blas', 'blas']
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    library_dirs = ['/usr/lib']
    language = c
blas_info:
    libraries = ['blas', 'blas']
    language = c
    library_dirs = ['/usr/lib']
    define_macros = [('HAVE_CBLAS', None)]
blas_mkl_info:
  NOT AVAILABLE
atlas_info:
  NOT AVAILABLE
atlas_3_10_threads_info:
  NOT AVAILABLE
lapack_mkl_info:
  NOT AVAILABLE
atlas_blas_threads_info:
  NOT AVAILABLE
atlas_3_10_info:
  NOT AVAILABLE
atlas_threads_info:
  NOT AVAILABLE
atlas_blas_info:
  NOT AVAILABLE
lapack_opt_info:
    libraries = ['lapack', 'lapack', 'blas', 'blas']
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    library_dirs = ['/usr/lib']
    language = c

【讨论】:

以上是关于用 LAPACK/BLAS 安装 numpy 的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Windows下用PIP安装scipy出现no lapack/blas resources found

Armadillo C++ 和 BLAS 和 ATLAS 在 mingw32 下找不到 lapack blas

windows: Python安装scipy,scikit-image时提示"no lapack/blas resources found"的解决方法

将具有外部依赖项的共享库集成到 MATLAB |即犰狳、LAPACK、BLAS

将犰狳 lapack blas 链接到代码时出错:未定义对“dtrsm_”的引用

python机器学习scikit-learn的安装