Scipy ImportError:DLL加载失败

问题描述

当我尝试运行scipy时,会发生以下情况:

>>> import scipy   
>>> from scipy import stats  
Traceback (most recent call last):  
  File "<pyshell#1>",line 1,in <module>  
    from scipy import stats  
  File "C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages  \python37\site-packages\scipy\stats\__init__.py",line 384,in <module>  
    from .stats import *  
  File "C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\scipy\stats\stats.py",line 179,in <module>  
    from scipy.spatial.distance import cdist  
  File "C:\Users\ASUS\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\scipy\spatial\__init__.py",line 99,in <module>  
    from .qhull import *  
ImportError: DLL load Failed: Das angegebene Modul wurde nicht gefunden.  

我已经整天用Google搜索,但是找不到解决该问题的方法。我发现了这个问题 "ImportError: DLL load failed: The specified module could not be found" when trying to import gensim

这总结了我的整个问题,因为我尝试了完全相同的事情:

首先,我使用pip安装scipy,并尝试将其卸载并重新安装。
然后,我也尝试了scipy版本1.4.1。成功导入了scipy而不是scipy.stats
最后,我也尝试卸载numpy + mkl,然后再次重新安装它,结果是:“导入numpy c-extensions失败”
非常感谢您的帮助!

解决方法

Numpy 和 scipy 依赖于较低级别的 Fortran 库(例如 BLAS 和 lapack)来执行它们的许多功能。这些库有许多不同的版本,包括可从 netlib 获得的高度可移植的版本,以及针对特定系统优化的其他版本。特别是,英特尔有一个叫做“MKL”——英特尔数学内核库。所以 numpy-mkl 只是表示针对 MKL fortran 库编译的 numpy 版本。

可能是您之前安装的 numpy 版本不知何故损坏,无法找到所需的库。