在 Windows 上使用 AMD64 构建的 Scipy 调用 scikit-learn 时出错

Posted

技术标签:

【中文标题】在 Windows 上使用 AMD64 构建的 Scipy 调用 scikit-learn 时出错【英文标题】:Error when calling scikit-learn using AMD64 build of Scipy on Windows 【发布时间】:2013-05-08 08:41:41 【问题描述】:

我在这一行收到此错误:

from sklearn.ensemble import RandomForestClassifier

错误日志是:

Traceback (most recent call last):
  File "C:\workspace\KaggleDigits\KaggleDigits.py", line 5, in <module>
    from sklearn.ensemble import RandomForestClassifier
  File "C:\Python27\lib\site-packages\sklearn\ensemble\__init__.py", line 7, in <module>
    from .forest import RandomForestClassifier
  File "C:\Python27\lib\site-packages\sklearn\ensemble\forest.py", line 47, in <module>
    from ..feature_selection.selector_mixin import SelectorMixin
  File "C:\Python27\lib\site-packages\sklearn\feature_selection\__init__.py", line 7, in <module>
    from .univariate_selection import chi2
  File "C:\Python27\lib\site-packages\sklearn\feature_selection\univariate_selection.py", line 13, in <module>
    from scipy import stats
  File "C:\Python27\lib\site-packages\scipy\stats\__init__.py", line 320, in <module>
    from .stats import *
  File "C:\Python27\lib\site-packages\scipy\stats\stats.py", line 241, in <module>
    import scipy.special as special
  File "C:\Python27\lib\site-packages\scipy\special\__init__.py", line 529, in <module>
    from ._ufuncs import *
ImportError: DLL load failed: The specified module could not be found.

安装后:

适用于 Windows x86-64 的 Python 2.7.4 scipy-0.12.0.win-amd64-py2.7.‌exe(来自here) numpy-unoptimized-1.7.1.win-amd64-py2.7.‌exe(来自here) scikit-learn-0.13.1.win-amd64-py2.7.‌exe(来自here)

有人知道为什么会发生这种情况以及如何解决吗?

【问题讨论】:

啊,我只是错过了它说你需要 Numpy 的 MKL 静态链接版本的部分......解决了这个问题。 您能否复制此评论作为您自己问题的答案并接受它?这将有助于将此问题标记为已解决。 我希望其他人会回复,所以我可以接受他们的回答,您不能在 2 天内接受自己的回答。 没问题。那就等2天吧:) 【参考方案1】:

正如 Christoph Gohlke 在他的下载 page 中提到的那样,可从他的网站下载的 scikit-learn 需要 Numpy-MKL。因此,我使用 Numpy-Unoptimized 犯了一个错误。

他的 Numpy-MKL 的链接静态链接到英特尔的 MKL,因此您不需要任何额外的下载(无需下载英特尔的 MKL)。

【讨论】:

【参考方案2】:

这有点晚了,不过对于像我这样的人,从官方下载这些 Microsoft website.

然后重新启动您的解释器/控制台,它应该可以工作了。

【讨论】:

【参考方案3】:

当我使用 scipy 0.12 时,这个问题发生在我身上。我改成scipy 0.11后,问题就没有了。

【讨论】:

以上是关于在 Windows 上使用 AMD64 构建的 Scipy 调用 scikit-learn 时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用Golang 1.10编译Windows DLL时遇到问题。

Go在windows10 64位上安装

GO语言学习-基础开发环境构建

Windows - 自动制作在 MSYS64 中不可用

Docker镜像多架构构建

构建Strimzi Kafka的ARM64镜像