从SciPY导入某些模块时出现ImportError错误

11

我已经使用Scipy有一段时间了。这是我第一次将其用于信号处理!但是,当我导入像

from scipy import signal
from scipy import special

我遇到了以下错误:

ImportError: DLL load failed: 找不到指定的模块。

我在32位Windows系统中使用Python 2.7.3和Scipy 0.12.0。

我该怎么办?


你的Scipy安装来自哪里? - ev-br
1
@Zhenya 目前的版本来自于这里。起初,我尝试使用pip install安装Scipy,但是我遇到了一些关于BLAS/ATLAS库的错误,因此我选择了上述链接中提供的二进制文件! - Animesh Pandey
我现在没有Windows,所以无法检查。通常,Gohlke二进制文件应该可以正常工作...你能检查一下你的系统中是否实际上存在所需的文件吗? - ev-br
6个回答

40

如果安装了普通的numpy分发包,可以通过安装numpy-MKL包来解决此问题。可以在这里找到该包。

在继续新安装之前,请先删除以前的安装!


6
这个问题涵盖了numpy-MKL和numpy之间的区别:https://dev59.com/h2Mm5IYBdhLWcg3wlfpS - Evgeni Sergeev
3
一个人如何确定要安装哪个numpy-MKL软件包? - gregorio099

5

我之前已经安装了numpy+mkl,但仍然面临类似的错误。 重新安装后问题得到解决:

pip uninstall numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl
pip install numpy-1.13.1+mkl-cp35-cp35m-win_amd64.whl

3

我从这里安装了针对Python 3.5.1的numpy-MKL,但直到我将C:\Program Files\Python35\Lib\site-packages\numpy\core文件夹添加到系统路径中,才解决了问题。


1
我因为Scipy的安装而无法导入sklearn。 我通过访问此处并下载适合我的计算机版本的numpy来解决这个问题。 然后,我通过访问此处并下载适合我的计算机的MKL版本的Scipy来做同样的事情。 做完这些之后,一切都正常了!
要检查系统支持的轮版本的支持标签,您可以在命令提示符中运行以下命令:pip debug --verbose。 您可以通过执行以下操作安装.nwhl文件的numpy和scipy:pip install {filename}.whl

1
与 OP 相似,我已经在我的系统上安装了 Intel MKL 库。我无法加载 scipy.linalg,出现相同的错误消息。我卸载了旧版本的 numpy 和 scipy(在安装 Intel 编译器和数学库之前安装的)。然后运行 pip install scipy,神奇地是,我现在可以导入 scipy.linalg 而不出错了。
我不太确定是什么原因导致了这个问题,以及为什么它无法找到所需的库。但在 Python 3.7.1 和 Anaconda 上,这些步骤对我解决了问题。

这对我也起作用了。我使用的教程说我需要下载Scipy和Numpy+MKL的.whl文件,然后使用pip3 install "numpy-1.17.3+mkl-cp37-cp37m-win_amd64.whl"进行安装。但是那样做失败了。卸载它们并简单地执行pip3 install scipy就可以了(我不需要单独安装numpy)。 - BlueRaja - Danny Pflughoeft

0

我在3.6版本上遇到了这个问题,重新安装和下载wheel包都没有解决。最后我找到了一个有效的解决方案:

打开 "site-packages/scipy" 文件夹,编辑 __init__.py 文件。在文件的最底部添加下面这行代码:

from . import signal
from . import special
from . import linalg
from . import <insert missing submodule here>

这是我唯一尝试过的解决方案,它应该适用于任何人。


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