使用LAPACK/BLAS,安装NumPy的最简单方法是什么?

7

我是在Ubuntu 14.04上。

我本来以为可以这样做:

sudo apt-get install python-numpy

本来应该可以工作,但现在不行了...

我尝试检查的方法是运行locate blas,但没有找到看起来相关的内容。

我希望有一个解决方案,不需要我从源代码编译安装。

理想的解决方案是使用Ubuntu软件仓库中的东西。

4个回答

4

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

sudo apt install python-scipy  

这个命令还会安装 libblas3 (基本线性代数子程序参考实现,共享库) 和 liblapack3 (线性代数例程库 3 - 共享版本) 作为依赖项,并且如果您没有安装 python-numpy,则它也会安装 python-numpy 作为依赖项。


为了获得最佳结果,请先卸载python-numpy包,如果您使用命令sudo pip uninstall python-numpy通过pip安装了它。 - karel

2

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

1

你尝试过使用 pip 吗?

sudo pip install numpy

如果您没有pip,请按照这里的说明安装pip。

我还没有尝试过使用pip...一般来说,我有点偏向于不使用pip,因为要正确地使用它似乎需要进行虚拟环境的设置,这听起来并不容易。如果没有存储库解决方案,pip可能是下一个最好的选择。除非我漏掉了什么... - evan54
我发现当出现问题时,pip很有效。擅长解决问题。 - smushi
我应该先卸载通过sudo apt-get安装的numpy吗? - evan54
它没有起作用,给了我一堆错误,找不到Fortran编译器和许多其他东西... - evan54
这是关于旧版Ubuntu的内容。我认为在14.04中已经没有Synaptic了。我将使用'apt-get'进行安装。 - evan54
显示剩余2条评论

1
我对anaconda软件包管理器有很好的使用经验(学习只需1-2小时)。在我看来,它比venv更易于使用,比pip/env更灵活。下载和设置后,你就可以直接使用大多数包,例如numpy。因此,不再会出现这样的问题!

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