【问题标题】:What is the easiest way to install BLAS and LAPACK for scipy?为 scipy 安装 BLAS 和 LAPACK 的最简单方法是什么?
【发布时间】:2016-01-26 21:08:59
【问题描述】:

我想运行一个别人已经准备好的程序,它包括 scipy.我试图用

安装 scipy
pip install scipy

但它给了我一个很长的错误。我知道 Anaconda 和 Canopy 有很多方法,但我认为这些方法很长。我想有一条捷径。我也试过了

G:\determinator_Oskar>pip install scipy
Collecting scipy
  Using cached scipy-0.16.1.tar.gz
Building wheels for collected packages: scipy
  Running setup.py bdist_wheel for scipy
  Complete output from command g:\myve\scripts\python.exe -c "import setuptools;
__file__='e:\\temp_n~1\\pip-build-1xigxu\\scipy\\setup.py';exec(compile(open(__f
ile__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d e:\temp_
n~1\tmp07__zrpip-wheel-:
  lapack_opt_info:
  openblas_lapack_info:
    libraries openblas not found in ['g:\\myve\\lib', 'C:\\']
    NOT AVAILABLE

  lapack_mkl_info:
  mkl_info:
    libraries mkl,vml,guide not found in ['g:\\myve\\lib', 'C:\\']
    NOT AVAILABLE

    NOT AVAILABLE

  atlas_3_10_threads_info:
  Setting PTATLAS=ATLAS
    libraries tatlas,tatlas not found in g:\myve\lib
    libraries lapack_atlas not found in g:\myve\lib
    libraries tatlas,tatlas not found in C:\
    libraries lapack_atlas not found in C:\
  <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
    NOT AVAILABLE

  atlas_3_10_info:
    libraries satlas,satlas not found in g:\myve\lib
    libraries lapack_atlas not found in g:\myve\lib
    libraries satlas,satlas not found in C:\
    libraries lapack_atlas not found in C:\
  <class 'numpy.distutils.system_info.atlas_3_10_info'>
    NOT AVAILABLE

  atlas_threads_info:
  Setting PTATLAS=ATLAS
    libraries ptf77blas,ptcblas,atlas not found in g:\myve\lib
    libraries lapack_atlas not found in g:\myve\lib
    libraries ptf77blas,ptcblas,atlas not found in C:\
    libraries lapack_atlas not found in C:\
  <class 'numpy.distutils.system_info.atlas_threads_info'>
    NOT AVAILABLE

  atlas_info:
    libraries f77blas,cblas,atlas not found in g:\myve\lib
    libraries lapack_atlas not found in g:\myve\lib
    libraries f77blas,cblas,atlas not found in C:\
    libraries lapack_atlas not found in C:\
  <class 'numpy.distutils.system_info.atlas_info'>
    NOT AVAILABLE

  lapack_info:
    libraries lapack not found in ['g:\\myve\\lib', 'C:\\']
    NOT AVAILABLE

  lapack_src_info:
    NOT AVAILABLE

    NOT AVAILABLE

  g:\myve\lib\site-packages\numpy\distutils\system_info.py:1552: UserWarning:
      Atlas (http://math-atlas.sourceforge.net/) libraries not found.
      Directories to search for the libraries can be specified in the
      numpy/distutils/site.cfg file (section [atlas]) or by setting
      the ATLAS environment variable.
    warnings.warn(AtlasNotFoundError.__doc__)
  g:\myve\lib\site-packages\numpy\distutils\system_info.py:1563: UserWarning:
      Lapack (http://www.netlib.org/lapack/) libraries not found.
      Directories to search for the libraries can be specified in the
      numpy/distutils/site.cfg file (section [lapack]) or by setting
      the LAPACK environment variable.
    warnings.warn(LapackNotFoundError.__doc__)
  g:\myve\lib\site-packages\numpy\distutils\system_info.py:1566: UserWarning:
      Lapack (http://www.netlib.org/lapack/) sources not found.
      Directories to search for the sources can be specified in the
      numpy/distutils/site.cfg file (section [lapack_src]) or by setting
      the LAPACK_SRC environment variable.
    warnings.warn(LapackSrcNotFoundError.__doc__)
  Running from scipy source directory.
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "e:\temp_n~1\pip-build-1xigxu\scipy\setup.py", line 253, in <module>
      setup_package()
    File "e:\temp_n~1\pip-build-1xigxu\scipy\setup.py", line 250, in setup_packa
ge
      setup(**metadata)
    File "g:\myve\lib\site-packages\numpy\distutils\core.py", line 135, in setup

      config = configuration()
    File "e:\temp_n~1\pip-build-1xigxu\scipy\setup.py", line 175, in configurati
on
      config.add_subpackage('scipy')
    File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 1001, in
 add_subpackage
      caller_level = 2)
    File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 970, in
get_subpackage
      caller_level = caller_level + 1)
    File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 907, in
_get_configuration_from_setup_py
      config = setup_module.configuration(*args)
    File "scipy\setup.py", line 15, in configuration
      config.add_subpackage('linalg')
    File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 1001, in
 add_subpackage
      caller_level = 2)
    File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 970, in
get_subpackage
      caller_level = caller_level + 1)
    File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 907, in
_get_configuration_from_setup_py
      config = setup_module.configuration(*args)
    File "scipy\linalg\setup.py", line 20, in configuration
      raise NotFoundError('no lapack/blas resources found')
  numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

  ----------------------------------------
  Failed building wheel for scipy
Failed to build scipy
Installing collected packages: scipy
  Running setup.py install for scipy
    Complete output from command g:\myve\scripts\python.exe -c "import setuptool
s, tokenize;__file__='e:\\temp_n~1\\pip-build-1xigxu\\scipy\\setup.py';exec(comp
ile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __fi
le__, 'exec'))" install --record e:\temp_n~1\pip-3hncqr-record\install-record.tx
t --single-version-externally-managed --compile --install-headers g:\myve\includ
e\site\python2.7\scipy:
    lapack_opt_info:
    openblas_lapack_info:
      libraries openblas not found in ['g:\\myve\\lib', 'C:\\']
      NOT AVAILABLE

    lapack_mkl_info:
    mkl_info:
      libraries mkl,vml,guide not found in ['g:\\myve\\lib', 'C:\\']
      NOT AVAILABLE

      NOT AVAILABLE

    atlas_3_10_threads_info:
    Setting PTATLAS=ATLAS
      libraries tatlas,tatlas not found in g:\myve\lib
      libraries lapack_atlas not found in g:\myve\lib
      libraries tatlas,tatlas not found in C:\
      libraries lapack_atlas not found in C:\
    <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
      NOT AVAILABLE

    atlas_3_10_info:
      libraries satlas,satlas not found in g:\myve\lib
      libraries lapack_atlas not found in g:\myve\lib
      libraries satlas,satlas not found in C:\
      libraries lapack_atlas not found in C:\
    <class 'numpy.distutils.system_info.atlas_3_10_info'>
      NOT AVAILABLE

    atlas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in g:\myve\lib
      libraries lapack_atlas not found in g:\myve\lib
      libraries ptf77blas,ptcblas,atlas not found in C:\
      libraries lapack_atlas not found in C:\
    <class 'numpy.distutils.system_info.atlas_threads_info'>
      NOT AVAILABLE

    atlas_info:
      libraries f77blas,cblas,atlas not found in g:\myve\lib
      libraries lapack_atlas not found in g:\myve\lib
      libraries f77blas,cblas,atlas not found in C:\
      libraries lapack_atlas not found in C:\
    <class 'numpy.distutils.system_info.atlas_info'>
      NOT AVAILABLE

    lapack_info:
      libraries lapack not found in ['g:\\myve\\lib', 'C:\\']
      NOT AVAILABLE

    lapack_src_info:
      NOT AVAILABLE

      NOT AVAILABLE

    g:\myve\lib\site-packages\numpy\distutils\system_info.py:1552: UserWarning:
        Atlas (http://math-atlas.sourceforge.net/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [atlas]) or by setting
        the ATLAS environment variable.
      warnings.warn(AtlasNotFoundError.__doc__)
    g:\myve\lib\site-packages\numpy\distutils\system_info.py:1563: UserWarning:
        Lapack (http://www.netlib.org/lapack/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [lapack]) or by setting
        the LAPACK environment variable.
      warnings.warn(LapackNotFoundError.__doc__)
    g:\myve\lib\site-packages\numpy\distutils\system_info.py:1566: UserWarning:
        Lapack (http://www.netlib.org/lapack/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [lapack_src]) or by setting
        the LAPACK_SRC environment variable.
      warnings.warn(LapackSrcNotFoundError.__doc__)
    Running from scipy source directory.
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "e:\temp_n~1\pip-build-1xigxu\scipy\setup.py", line 253, in <module>
        setup_package()
      File "e:\temp_n~1\pip-build-1xigxu\scipy\setup.py", line 250, in setup_pac
kage
        setup(**metadata)
      File "g:\myve\lib\site-packages\numpy\distutils\core.py", line 135, in set
up
        config = configuration()
      File "e:\temp_n~1\pip-build-1xigxu\scipy\setup.py", line 175, in configura
tion
        config.add_subpackage('scipy')
      File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 1001,
in add_subpackage
        caller_level = 2)
      File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 970, i
n get_subpackage
        caller_level = caller_level + 1)
      File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 907, i
n _get_configuration_from_setup_py
        config = setup_module.configuration(*args)
      File "scipy\setup.py", line 15, in configuration
        config.add_subpackage('linalg')
      File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 1001,
in add_subpackage
        caller_level = 2)
      File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 970, i
n get_subpackage
        caller_level = caller_level + 1)
      File "g:\myve\lib\site-packages\numpy\distutils\misc_util.py", line 907, i
n _get_configuration_from_setup_py
        config = setup_module.configuration(*args)
      File "scipy\linalg\setup.py", line 20, in configuration
        raise NotFoundError('no lapack/blas resources found')
    numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

    ----------------------------------------
Command "g:\myve\scripts\python.exe -c "import setuptools, tokenize;__file__='e:
\\temp_n~1\\pip-build-1xigxu\\scipy\\setup.py';exec(compile(getattr(tokenize, 'o
pen', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install
--record e:\temp_n~1\pip-3hncqr-record\install-record.txt --single-version-exter
nally-managed --compile --install-headers g:\myve\include\site\python2.7\scipy"
failed with error code 1 in e:\temp_n~1\pip-build-1xigxu\scipy      

我也试过了

pip install lapack

有了这个结果

Collecting lapack
  Could not find a version that satisfies the requirement lapack (from versions
 )
No matching distribution found for lapack

我也试过

pip install blas

结果相似

G:\determinator_Oskar>pip install blas
Collecting blas
  Could not find a version that satisfies the requirement blas (from versions: )

No matching distribution found for blas

为什么 scipy 变得如此复杂?

【问题讨论】:

  • 我做了yum install lapack 安装了lapack和blas,但它也没有解决问题......
  • sudo yum install blas-devel lapack-devel 在 RedHat 或 CentOS 上需要。 sudo apt-get install gfortran libopenblas-dev liblapack-dev python-dev 在 Debian 或 Ubuntu 上。 YMMV。
  • @gaoithe 如果我在新的 EC2 Redhat 映像上使用该 redhat 命令,我会收到一条错误消息,因为该软件包不可用。 (即错误的包名)
  • @falsePockets 试试 libblas-devel 和 liblapack-devel 看看stackoverflow.com/questions/15777836/…
  • 我遇到了同样的问题,升级 pip 对我有帮助

标签: python numpy


【解决方案1】:

对于 Debian JessieStretch,安装以下软件包可解决问题:

sudo apt install libblas3 liblapack3 liblapack-dev libblas-dev

您的下一个问题很可能是缺少 Fortran 编译器,请通过如下方式安装它来解决此问题:

sudo apt install gfortran

如果你想要一个优化的 scipy,你也可以安装可选的libatlas-base-dev 包:

sudo apt install libatlas-base-dev

Source


如果您对这样的缺失 Python.h 文件有任何疑问:

Python.h:没有这样的文件或目录

那就看看这个帖子:https://stackoverflow.com/a/21530768/209532

【讨论】:

  • 我必须在minimized Ubuntu 18.04.3 LTS上执行这些步骤
  • 这样你得到一个未优化的 BLAS 库。检查my answer(来源是scipy文档本身)
【解决方案2】:

SciPy installation page 已经推荐了几种安装带有 SciPy 的 python 的方法,例如WinPython

另一种方法是使用wheels(一种内置的包格式):

pip install SomePackage-1.0-py2.py3-none-any.whl

您可以在以下位置找到车轮包:http://www.lfd.uci.edu/~gohlke/pythonlibs/

对于 SciPy,您需要:

【讨论】:

  • 大家好,谢谢你们,感谢上帝赐予我们的 miniconda。它就像一个奇迹。安装并运行conda install scipy,就像你建议的@jakedvp。现在我的程序正在运行,我很高兴。祝你有美好的一天:)
  • 我有 Windows 10,它不允许我使用轮子安装。我能做什么
  • 您尝试过其他解决方案吗?如果这仍然不起作用,您可以提出一个新问题,解释您尝试过的操作以及遇到的错误。
  • 这对我有用。我下载了 *.whl 文件并复制到安装 pip 的目录,然后运行命令为“pip install filename.whl”
  • 在页面上,没有关于 blas/lapack 安装的任何信息,并且轮子并未涵盖您可能需要的所有版本。
【解决方案3】:

“为什么 scipy 变得如此复杂?

之所以如此复杂,是因为 Python 的包管理系统是为跟踪 Python 包依赖关系而构建的,而 SciPy 和其他科学工具的依赖关系超出了 Python。 Wheels 解决了部分问题,但我的经验是 pip/virtualenv 之类的工具不足以安装和管理科学 Python 堆栈。

如果您想要一种简单的方法来启动和运行 SciPy,我强烈建议您使用 Anaconda distribution。它将为您提供在 Python 中进行科学计算所需的一切。

如果你想要一个“捷径”来做到这一点(我将其解释为“我不想安装一个庞大的发行版”),你可以尝试miniconda,然后运行conda install scipy

【讨论】:

    【解决方案4】:

    始终适用于 Ubuntu/Debian,chjortlund's answer 它非常好但并不完美,因为这样你会得到一个未优化的 BLAS 库。你只需要做:

    sudo apt install libatlas-base-dev
    

    瞧!

    Source

    【讨论】:

      【解决方案5】:

      使用 conda install scipy 而不是 pip 为我解决了这个问题!

      【讨论】:

        【解决方案6】:

        对于 windows:最好使用此站点提供的预编译包: http://www.lfd.uci.edu/%7Egohlke/pythonlibs/#scipy

        【讨论】:

          【解决方案7】:

          为了完整起见,尽管考虑到您的特定设置(外部程序 + Windows),这可能无法正常工作,但作为(大)SageMath 下载的一部分,您也可以轻松获取 Scipy。

          【讨论】:

            【解决方案8】:

            要么使用SciPy whl,下载相应的并运行pip install &lt;whl_file&gt;

            通读SciPy Windows issue and run one of the methods

            使用Miniconda

            另外,安装 Visual C++ compiler for python2.7 以防它要求它。

            【讨论】:

              【解决方案9】:

              我在 freeBSD 上遇到了这个问题。 似乎 lapack 包丢失了,我解决了安装它们(以 root 身份)的问题:

              pkg install lapack
              pkg install atlas-devel  #not sure this is needed, but just in case
              

              我想它也可以使用适当的软件包安装程序(例如 apt-get)在其他系统上运行

              【讨论】:

                【解决方案10】:

                pip install Cython

                之前

                pip install sklearn

                为我做了诀窍。

                【讨论】:

                  【解决方案11】:
                  conda install liblapack
                  

                  这对我有用

                  【讨论】:

                    猜你喜欢
                    • 2023-04-05
                    • 2015-03-27
                    • 1970-01-01
                    • 2021-12-25
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-03-20
                    相关资源
                    最近更新 更多