【问题标题】:module 'numpy.distutils.__config__' has no attribute 'blas_opt_info'模块“numpy.distutils.__config__”没有属性“blas_opt_info”
【发布时间】:2022-01-24 19:18:17
【问题描述】:

我正在尝试研究神经网络和深度学习 (http://neuralnetworksanddeeplearning.com/chap1.html)。使用 MichalDanielDobrzanski (https://github.com/MichalDanielDobrzanski/DeepLearningPython) 的 Python 3 更新版本。试图在我的命令控制台中运行它,它在下面给出了一个错误。我已经尝试卸载并重新安装 setuptools、theano 和 numpy,但到目前为止都没有。非常感谢任何帮助!

这是完整的错误日志:

WARNING (theano.configdefaults): g++ not available, if using conda: `conda install m2w64-toolchain`
C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\configdefaults.py:560: UserWarning: DeprecationWarning: there is no c++ compiler.This is deprecated and with Theano 0.11 a c++ compiler will be mandatory
  warnings.warn("DeprecationWarning: there is no c++ compiler."
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
Traceback (most recent call last):
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\configparser.py", line 168, in fetch_val_for_key
    return theano_cfg.get(section, option)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\configparser.py", line 781, in get
    d = self._unify_values(section, vars)
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\configparser.py", line 1149, in _unify_values
    raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'blas'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\configparser.py", line 327, in __get__
    val_str = fetch_val_for_key(self.fullname,
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\configparser.py", line 172, in fetch_val_for_key
    raise KeyError(key)
KeyError: 'blas.ldflags'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\ASUS\Documents\GitHub\Neural-network-and-deep-learning-but-for-python-3\test.py", line 156, in <module>
    import network3
  File "C:\Users\ASUS\Documents\GitHub\Neural-network-and-deep-learning-but-for-python-3\network3.py", line 37, in <module>
    import theano
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\__init__.py", line 124, in <module>
    from theano.scan_module import (scan, map, reduce, foldl, foldr, clone,
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\scan_module\__init__.py", line 41, in <module>
    from theano.scan_module import scan_opt
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\scan_module\scan_opt.py", line 60, in <module>
    from theano import tensor, scalar
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\tensor\__init__.py", line 17, in <module>
    from theano.tensor import blas
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\tensor\blas.py", line 155, in <module>
    from theano.tensor.blas_headers import blas_header_text
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\tensor\blas_headers.py", line 987, in <module>
    if not config.blas.ldflags:
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\configparser.py", line 332, in __get__
    val_str = self.default()
  File "C:\Users\ASUS\AppData\Local\Programs\Python\Python39\lib\site-packages\theano\configdefaults.py", line 1284, in default_blas_ldflags
    blas_info = np.distutils.__config__.blas_opt_info
AttributeError: module 'numpy.distutils.__config__' has no attribute 'blas_opt_info'

【问题讨论】:

  • 感谢@eshivana 让其更清晰!!

标签: python numpy tensorflow deep-learning theano


【解决方案1】:

我遇到了同样的问题,并通过以下方式将 numpy 降级到 1.20.3 版解决了它:

pip3 install --upgrade numpy==1.20.3

【讨论】:

  • 请注意,该行应为pip3 install --upgrade numpy==1.20.3(加倍==)
  • 谢谢!这行得通!我也意识到我应该简单地遵循要求并安装相关版本......好吧,我们都必须从我想的某个地方开始。但是非常感谢你们!
  • 注:1.21也可以。
【解决方案2】:

附加信息:

theano 是一个过时的包,不应与现代版本的 numpy 一起使用。然而,一些遗留代码库将使用theano,因此在接受的答案中将需要降级 numpy #21079。

如果需要坚持使用 numpy 1.22+,blas_opt_info 位于 numpy.distutils.system_info.blas_opt_info,因此手动修补 theano 以使用正确的符号将是另一种解决方法。

【讨论】:

  • 注意!感谢钟旭的信息!
猜你喜欢
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2020-06-04
  • 2021-12-24
  • 2015-05-08
  • 2020-10-17
  • 2020-10-03
  • 2018-08-11
相关资源
最近更新 更多