安装 scipy 时未找到库 mkl_rt、openblas、lapack - 如何更改库的标志

问题描述 投票:0回答:2

我是 python 和 pip 生态系统的新手。我正在尝试安装 scikit-image 并且我认为它正在安装 scipy 作为依赖项。我使用的是 macOS 11.1,我知道对该版本的支持不是很好,因为它刚刚发布,但我只需更改一些标志(LDFLAGS、CPPFLAGS)就可以安装 numpy、pillow 等软件包。

有人可以告诉我是否可以通过更改一些配置来解决以下安装错误?

我已经安装了 openblas、mkl_rt 库。

(trial) ~/.virtualenvs/trial python -m pip install scikit-image                                       
Collecting scikit-image
  Using cached scikit-image-0.17.2.tar.gz (29.8 MB)
Requirement already satisfied: numpy>=1.15.1 in ./lib/python3.6/site-packages (from scikit-image) (1.19.4)
Collecting scipy>=1.0.1
  Using cached scipy-1.5.4.tar.gz (25.2 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... error
    ERROR: Command errored out with exit status 1:
     command: /Users/myusername/.virtualenvs/trial/bin/python /Users/myusername/.virtualenvs/trial/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/tmpk55uptaz
         cwd: /private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-install-1v5ec7uf/scipy
    Complete output (137 lines):
    lapack_opt_info:
    lapack_mkl_info:
    customize UnixCCompiler
      libraries mkl_rt not found in ['/Users/myusername/.virtualenvs/trial/lib', '/usr/local/lib', '/usr/lib']
      NOT AVAILABLE
    
    openblas_lapack_info:
    customize UnixCCompiler
    customize UnixCCompiler
      libraries openblas not found in ['/Users/myusername/.virtualenvs/trial/lib', '/usr/local/lib', '/usr/lib']
      NOT AVAILABLE
    
    openblas_clapack_info:
    customize UnixCCompiler
    customize UnixCCompiler
      libraries openblas,lapack not found in ['/Users/myusername/.virtualenvs/trial/lib', '/usr/local/lib', '/usr/lib']
      NOT AVAILABLE
    
    atlas_3_10_threads_info:
    Setting PTATLAS=ATLAS
    customize UnixCCompiler
      libraries tatlas,tatlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries tatlas,tatlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries tatlas,tatlas not found in /usr/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/lib
    <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
      NOT AVAILABLE
    
    atlas_3_10_info:
    customize UnixCCompiler
      libraries satlas,satlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries satlas,satlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries satlas,satlas not found in /usr/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/lib
    <class 'numpy.distutils.system_info.atlas_3_10_info'>
      NOT AVAILABLE
    
    atlas_threads_info:
    Setting PTATLAS=ATLAS
    customize UnixCCompiler
      libraries ptf77blas,ptcblas,atlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries ptf77blas,ptcblas,atlas not found in /usr/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/lib
    <class 'numpy.distutils.system_info.atlas_threads_info'>
      NOT AVAILABLE
    
    atlas_info:
    customize UnixCCompiler
      libraries f77blas,cblas,atlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /Users/myusername/.virtualenvs/trial/lib
    customize UnixCCompiler
      libraries f77blas,cblas,atlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/local/lib
    customize UnixCCompiler
      libraries f77blas,cblas,atlas not found in /usr/lib
    customize UnixCCompiler
      libraries lapack_atlas not found in /usr/lib
    <class 'numpy.distutils.system_info.atlas_info'>
      NOT AVAILABLE
    
    lapack_info:
    customize UnixCCompiler
      libraries lapack not found in ['/Users/myusername/.virtualenvs/trial/lib', '/usr/local/lib', '/usr/lib']
      NOT AVAILABLE
    
    lapack_src_info:
      NOT AVAILABLE
    
      NOT AVAILABLE
    
    setup.py:462: UserWarning: Unrecognized setuptools command ('dist_info --egg-base /private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-modern-metadata-tssa7s05'), proceeding with generating Cython sources and expanding templates
      ' '.join(sys.argv[1:])))
    Running from SciPy source directory.
    /private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/numpy/distutils/system_info.py:624: 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.
      self.calc_info()
    /private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/numpy/distutils/system_info.py:624: 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.
      self.calc_info()
    /private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/numpy/distutils/system_info.py:624: 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.
      self.calc_info()
    Traceback (most recent call last):
      File "/Users/myusername/.virtualenvs/trial/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
        main()
      File "/Users/myusername/.virtualenvs/trial/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
        json_out['return_val'] = hook(**hook_input['kwargs'])
      File "/Users/myusername/.virtualenvs/trial/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py", line 133, in prepare_metadata_for_build_wheel
        return hook(metadata_directory, config_settings)
      File "/private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 161, in prepare_metadata_for_build_wheel
        self.run_setup()
      File "/private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 254, in run_setup
        self).run_setup(setup_script=setup_script)
      File "/private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 145, in run_setup
        exec(compile(code, __file__, 'exec'), locals())
      File "setup.py", line 583, in <module>
        setup_package()
      File "setup.py", line 579, in setup_package
        setup(**metadata)
      File "/private/var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/pip-build-env-_26ufpkr/overlay/lib/python3.6/site-packages/numpy/distutils/core.py", line 135, in setup
        config = configuration()
      File "setup.py", line 477, in configuration
        raise NotFoundError(msg)
    numpy.distutils.system_info.NotFoundError: No lapack/blas resources found. Note: Accelerate is no longer supported.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Users/myusername/.virtualenvs/trial/bin/python /Users/myusername/.virtualenvs/trial/lib/python3.6/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /var/folders/ss/d2f4tvvn7fzc42ls4hbrw06h0000gn/T/tmpk55uptaz Check the logs for full command output.
python installation scipy pip scikit-image
2个回答
0
投票

您遇到的此错误与依赖性错误有关。

除了 openblas 库之外,mkl_rt.你需要安装atlas、lapack。

使用此命令安装库。

brew install atlas

brew install openblas

brew install lapack

如果 LD 未自动完成,您可以使用此替代路线。

export DYLD_LIBRARY_PATH=/path/to/atlas/lib:$DYLD_LIBRARY_PATH

export DYLD_LIBRARY_PATH=/path/to/lapack/lib:$DYLD_LIBRARY_PATH

如果库位于不同位置,这些环境变量应指向库所在的位置。


-3
投票

当我使用通过 pyenv 安装的 Python 时,我遇到了同样的问题。 它缺少一些依赖项或路径未成功添加。

因此,您需要下载所有依赖项并将它们添加到您的 .profile 文件(bash 或 zsh)中,这些依赖项不是通过以下命令安装的: pyenv install (version)

或者,您可以尝试通过 HomeBrew 安装,它会下载所有依赖项/库并将它们添加到使用以下命令成功运行 python 程序所需的默认路径:

brew install python

这是一个很好的链接,您可以点击它来获取详细说明:
https://docs.python-guide.org/starting/install3/osx/

然后我注意到您正在使用虚拟环境。我建议在全新安装完成后创建一个新的虚拟环境。 (我知道这是很明显的);)

希望这能解决您缺少库的问题。

© www.soinside.com 2019 - 2024. All rights reserved.