导入 scikit-learn 模块时出错

Error importing scikit-learn modules

我正在尝试从集群模块调用函数,如下所示:

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:\Python34\lib\site-packages\sklearn\cluster\__init__.py", line 6, in <module>
    from .spectral import spectral_clustering, SpectralClustering
  File "C:\Python34\lib\site-packages\sklearn\cluster\spectral.py", line 13, in <module>
    from ..utils import check_random_state, as_float_array
  File "C:\Python34\lib\site-packages\sklearn\utils\__init__.py", line 16, in <module>
    from .class_weight import compute_class_weight, compute_sample_weight
  File "C:\Python34\lib\site-packages\sklearn\utils\class_weight.py", line 7, in <module>
    from ..utils.fixes import in1d
  File "C:\Python34\lib\site-packages\sklearn\utils\fixes.py", line 318, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "C:\Python34\lib\site-packages\scipy\sparse\linalg\__init__.py", line 109, in <module>
    from .isolve import *
  File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\iterative.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。

将此行放在 python 文件的顶部

from sklearn import cluster

应该这样做:))

问题出在 scipy/numpy 安装上。我一直在使用(通常非常好!)来自 http://www.lfd.uci.edu/~gohlke/pythonlibs/. Uninstall/re-install from there made no difference, but installing with the official installers (linked from http://www.scipy.org/install.html 的非官方安装程序)成功了。

您可能不会使用 Numpy+MKL,而只会使用 Numpy。

我遇到了同样的问题,正在使用 MKL 重新安装 Numpy

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

已修复。

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

我正在使用 anaconda 在加载 Orange 或 PlotNine 时遇到与 OP 相同的错误。 我不记得这是什么时候开始发生的。

DependencyWalk 中缺少对 Anaconda3\Lib\site-packages\scipy\special\_ufuncs.cp36-win32.pydlibifcoremd.dlllibmmd.dll 的依赖性跟踪。在 anaconda 根目录中搜索它们,它们位于 ICC_RT 和一个版本的 MKL 包中。

Anaconda3\pkgs\mkl-2017.0.3-0\Library\bin添加到PATH,似乎修复了SciPy和NumPy相关的DLL加载失败,上面的包又开始工作了。

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

重新安装 ICC_RT 解决了我的问题,libmmd.dll 和相关的 dll 之后自动复制到 anaconda3/library/bin,由 [= 自动添加到 PATH 18=] 命令。所有以前 numpy/scipy 相关的 cant load DLL 错误现在都消失了。

从错误日志看,scipy模块是最新的模块导入失败

  File "C:\Python34\lib\site-packages\sklearn\utils\fixes.py", line 318, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "C:\Python34\lib\site-packages\scipy\sparse\linalg\__init__.py", line 109, in <module>
    from .isolve import *
  File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:\Python34\lib\site-packages\scipy\sparse\linalg\isolve\iterative.py", line 7, in <module>
    from . import _iterative
ImportError: DLL load failed: The specified module could not be found.

我有同样的错误,显示相同的日志,当我 uninstall/install scipy:

时问题就消失了
pip uninstall scipy
pip install scipy

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

pip uninstall sklearn
pip uninstall scikit-learn
pip uninstall scipy
pip install scipy
pip install scikit-learnhere

我有同样的问题并通过 installing/updating 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 库 (risky/tedious?)。

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

  1. 使用管理员权限登录命令提示符;如何在这里:https://superuser.com/questions/968214/open-cmd-as-admin-with-windowsr-shortcut

  2. 卸载 existing/tangled 版本的 Scipy & Numpy pip uninstall scipy pip uninstall numpy

  3. 全新安装 Scipy & Numpy pip install scipy pip install numpy

  4. 运行 Jupyter 笔记本;它对我有用。

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

下载 Microsoft Visual C++ 发行版

link : https://www.microsoft.com/en-in/download/details.aspx?id=53840

vc_redist.x64.exe

在您的计算机中安装并运行此.exe文件..此后将不会出现DLL导入模块错误

现在可以正常使用了:)