导入scikit-learn模块时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导入scikit-learn模块时出错相关的知识,希望对你有一定的参考价值。

我试图从集群模块调用一个函数,如下所示:

import sklearn
db = sklearn.cluster.DBSCAN()

我收到以下错误:

AttributeError: 'module' object has no attribute 'cluster'

在IPython中完成制表符,我似乎可以访问base,clone,externals,re,setup_module,sys和warning模块。没有别的,尽管其他人(包括集群)在sklearn目录中。

遵循以下pbu的建议并使用

from sklearn import cluster

我明白了:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from sklearn import cluster
  File "C:Python34libsite-packagessklearncluster\__init__.py", line 6, in <module>
    from .spectral import spectral_clustering, SpectralClustering
  File "C:Python34libsite-packagessklearnclusterspectral.py", line 13, in <module>
    from ..utils import check_random_state, as_float_array
  File "C:Python34libsite-packagessklearnutils\__init__.py", line 16, in <module>
    from .class_weight import compute_class_weight, compute_sample_weight
  File "C:Python34libsite-packagessklearnutilsclass_weight.py", line 7, in <module>
    from ..utils.fixes import in1d
  File "C:Python34libsite-packagessklearnutilsfixes.py", line 318, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "C:Python34libsite-packagesscipysparselinalg\__init__.py", line 109, in <module>
    from .isolve import *
  File "C:Python34libsite-packagesscipysparselinalgisolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:Python34libsite-packagesscipysparselinalgisolveiterative.py", line 7, in <module>
    from . import _iterative
ImportError: DLL load failed: The specified module could not be found.

我在Windows上使用Python 3.4,scikit-learn 0.16.1。

答案

你可能不使用Numpy + MKL,但只使用Numpy。

我有同样的问题,并重新安装Numpy与MKL

pip install --upgrade --force-reinstall "numpy‑1.16.3+mkl‑cp37‑cp37m‑win32.whl"

固定它。

注意:将文件更新到最新版本,可能是64位 - 请参阅the list of available Windows binaries

另一答案

问题是scipy / numpy安装。我一直在使用http://www.lfd.uci.edu/~gohlke/pythonlibs/的(通常很棒!)非官方安装人员。从那里卸载/重新安装没有任何区别,但安装官方安装程序(从http://www.scipy.org/install.html链接)就可以了。

另一答案

我正在使用anaconda得到与OP相同的错误,当加载Orange或PlotNine时。我不记得这个开始发生的时间。

在DependencyWalk中缺少跟踪Anaconda3Libsite-packagesscipyspecial\_ufuncs.cp36-win32.pydlibifcoremd.dlllibmmd.dll的依赖关系。在anaconda root directry中搜索它们,它们位于ICC_RT和MKL包的一个版本中。

Anaconda3pkgsmkl-2017.0.3-0Libraryin添加到PATH,似乎修复了SciPy和NumPy相关的DLL加载失败,上面的包再次开始工作。

我还是不知道如何妥善解决这个问题。显然缺点是MKL包可以更新,版本可能会改变,路径也是如此。在这方面,它与添加非托管包同样不方便。

重新安装ICC_RT为我解决了问题,libmmd.dll和相关的dll随后被自动复制到anaconda3/library/bin中,由PATH命令自动添加到activate中。所有先前numpy / scipy相关的cant load DLL错误现在已经消失。

另一答案

从错误日志中,它显示scipy模块是最新模块无法导入

  File "C:Python34libsite-packagessklearnutilsfixes.py", line 318, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "C:Python34libsite-packagesscipysparselinalg\__init__.py", line 109, in <module>
    from .isolve import *
  File "C:Python34libsite-packagesscipysparselinalgisolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:Python34libsite-packagesscipysparselinalgisolveiterative.py", line 7, in <module>
    from . import _iterative
ImportError: DLL load failed: The specified module could not be found.

我有相同的错误,显示相同的日志,卸载/安装scipy时问题已经消失:

pip uninstall scipy
pip install scipy
另一答案

将此行放在python文件的顶部

from sklearn import cluster

应该这样做:))

另一答案

对我来说,修复它们的是这些命令:

pip uninstall sklearn
pip uninstall scikit-learn
pip uninstall scipy
pip install scipy
pip install scikit-learnhere
另一答案

我遇到了同样的问题并通过安装/更新mkl包解决了这个问题:

conda install mkl

要么

pip install mkl

仅提供完整信息,这也降低了以下包:

以下包将更新:

mkl:          2017.0.4-h6d528fc_0 defaults --> 2018.0.3-1         defaults

以下包将被降级:

numpy:        1.11.3-py34_0       defaults --> 1.10.1-py34_0      defaults
pandas:       0.19.2-np111py34_1  defaults --> 0.18.1-np110py34_0 defaults
scikit-learn: 0.18.1-np111py34_1  defaults --> 0.17-np110py34_1   defaults
scipy:        0.19.1-np111py34_0  defaults --> 0.16.0-np110py34_0 defaults
另一答案

我努力想把这个拿出来;试图从网站下载并安装(非官方)Numpy + MKL库(冒险/乏味?)。

最终通过以下方式获得成功

  1. 使用管理员权限登录命令提示符;怎么样:https://superuser.com/questions/968214/open-cmd-as-admin-with-windowsr-shortcut
  2. 卸载Scipy和Numpy qazxsw poi的现有/纠结版本
  3. 新装Scipy和Numpy qazxsw poi
  4. 运行Jupyter笔记本;它对我有用。

消息ImportError:DLL加载失败:找不到指定的模块,通知无法识别和获取所需的DLL以使用scikit-learn库;全新安装scipy / numpy可能会更好地路由从Jupyter笔记本代码调用的DLL连接。

以上是关于导入scikit-learn模块时出错的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow 导致 scikit-learn 出错

使用 scikit-learn 执行 LDA 降维时出错

Android android.view.InflateException Binary XML 文件第 16 行:膨胀类片段时出错

导入 tensorflow 模块时出错

第 7 行的 InflateException 二进制 XML 文件:膨胀类片段时出错

解析模块说明符时出错:从 API 进行动态导入时做出反应