2016-08-18 67 views
1

我有一些麻烦从python从scipy集成子模块。 我有一个64位体系结构,根据python解释器的第一行(参见下文),我似乎也在使用64位版本的Python和Anaconda。Python scipy模块导入错误,由于缺少._ufuncs dll

下面的问题(我刚写了最少的代码显示发生了什么)


Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar 6 2015, 12:06:10) [MSC v.1600 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import scipy 
>>> import scipy.integrate 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\*********\Anaconda3\lib\site-packages\scipy\integrate\__init__.py", line 55, in <module> 
    from .quadrature import * 
    File "C:\Users\*********\Anaconda3\lib\site-packages\scipy\integrate\quadrature.py", line 10, in <module> 
    from scipy.special.orthogonal import p_roots 
    File "C:\Users\*********\Anaconda3\lib\site-packages\scipy\special\__init__.py", line 636, in <module> 
    from ._ufuncs import * 
ImportError: DLL load failed: Le module spécifié est introuvable. 

同样与进口scipy.special

正如你可以看到发生SciPy的可以导入,但是scipy.integrate会产生错误。奇怪的是,在文件夹 ... \ lib \ site-packages \ scipy \ special中,会出现._ufuncs.pyd。 另外,我经常使用其他用途的作品,而且作品通常都很好。

我使用的是版本0.18.0的scipy和pip 1.8.1。 我试图用conda重新安装scipy,但这似乎没有改变任何东西。

看来,该DLL无法找到。我在互联网上发现了几个帖子(包括一个建议在C:\ Windows \ SysWOW64下载“libmmd.dll”的帖子),但似乎没有任何工作。我的猜测是,这仍然是p-32-64位兼容性,因为这是python中最常用的pb,而且我记得在几个月前第一次安装所有软件时都有很大的pb。

因此,跟上最初的问题,有没有办法知道哪个版本(32位或64位)的每个包或DLL是有效地安装/加载? 你有另一个想法,为什么我得到这个错误信息?

谢谢你的答案,这个问题是相当令人沮丧...

回答

1

我通过以下步骤解决:

  1. 安装MKL

  2. 对于我的情况,我使用Dependency Wakler检查了\scipy\special\_ufuncs.cp36-win_amd64.pyd。发现我错过了LIBIFCOREMD.DLLLIBMMD.DLL。我通过安装Intel Distribution for Python解决了这个问题。英特尔的Python发行版实际上是Python 3.5的特殊版本。它包含很多所需的DLL。安装Intel Distribution for Python后,请转至path_to_Intel_Distribution_for_Python\Library\bin(在我的电脑上是C:\IntelPython3\Library\bin),并将所有文件夹和文件复制到path_to_your_default_python\Library\bin(在我的电脑上是C:\Anaconda3\Library\bin)。 capture (根据this answer忽略其他丢失的dll)。

然后问题解决了。

PS。也许有时在path_to_Intel_Distribution_for_Python\Library\include\文件也需要?

PPS。如果不再需要,可以卸载Intel Distribution for Python。

PPPS。更简单的方法是使用轮子。 Unofficial Windows Binaries for Python Extension Packages。但我喜欢用conda update --all来更新软件包......然后一切搞砸了......

+0

这解决了我的问题(使用Python 3.5.2的Windows 10和Anaconda 3)。没有尝试'conda更新 - 所有'部分。谢谢! – Johan