Python DLL 加载失败

13

我通常使用Matlab编程,但我找到了一段很好的PYTHON代码,想要使用它。然而,在下载了这个软件包之后,运行它很困难。我遇到了以下错误:

Traceback (most recent call last):
  File "C:\launch.py", line 29, in <module>
    from src.smcsquare import SMCsquare
  File "C:\src\smcsquare.py", line 32, in <module>
    from scipy.stats import norm
  File "C:\Python34\lib\site-packages\scipy\stats\__init__.py", line 338, in <module>
    from .stats import *
  File "C:\Python34\lib\site-packages\scipy\stats\stats.py", line 184, in <module>
    import scipy.special as special
  File "C:\Python34\lib\site-packages\scipy\special\__init__.py", line 586, in <module>
    from ._ufuncs import *
ImportError: DLL load failed: The specified module could not be found.

_ufuncs.pyd 存放在 C:\Python34\lib\site-packages\scipy\special\ 目录下。我尝试将其添加到我的 PYTHONPATH 中,但没有任何改善。我还尝试了一些 dll 修复工具,但这些都没有帮助。请问是否有人遇到过类似问题并找到解决方案?


你需要一个不同版本的Scipy...检查32-64位兼容性,以及2.6-2.7(或3.4)。 - Aaron
2
我猜你在使用Windows,所以这里是获取大多数预编译库的地方。下载wheel归档文件,并使用pip进行安装。 - Aaron
另一种解决方案(首选?)是获取一个预先构建的Python发行版,其中包含所有必要的库。 Windows的两个主要发行版是[anaconda](http://continuum.io/downloads#27)和[winPython](http://winpython.sourceforge.net/)。 - Aaron
C:>py Python 3.4.1(v3.4.1:c0e311e010fc,2014年5月18日,10:38:22)[MSC v.1600 32位(In tel)]在win32上 - William Nolan
所以是的,和你一样,我使用64位的Windows和32位的Python。 - William Nolan
显示剩余4条评论
1个回答

7

正如其他人所说,确保您的.whl文件与您正在使用的Python发行版的版本和32/64位匹配。

下一步,我遇到的问题是我忘记按照说明下载和安装额外的“numpy+mkl”软件包:http://www.lfd.uci.edu/ ~gohlke/pythonlibs/#scipy

因此,对于我来说,它是numpy-1.11.0+mkl-cp35-cp35m-win_amd64.whl,我下载并进行了安装:

python -m pip install numpy-1.11.0+mkl-cp35-cp35m-win_amd64.whl

我之前已经通过pip安装了常规的numpy包,但是我刚刚在其上安装了这个包,一切都开始正常工作了,目前为止一切都很好。


2
如果要详细说明“匹配版本”,那么如果你正在使用Python 3.4,则不要下载文件名中带有“-cp35-”的文件。 - Noumenon
那个文件不再存在。 - Omar

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