尝试导入sklearn模块时出错:ImportError:DLL加载失败:找不到指定的模块

时间:2016-12-26 15:00:29

标签: python machine-learning dll sklearn-pandas

我尝试为机器学习项目进行以下导入:

from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression

我收到此错误消息:

Traceback (most recent call last):
  File "C:/Users/Abdelhalim/PycharmProjects/ML/stock pricing.py", line 4, in <module>
    from sklearn import preprocessing, cross_validation, svm
  File "C:\Python27\lib\site-packages\sklearn\__init__.py", line 57, in <module>
    from .base import clone
  File "C:\Python27\lib\site-packages\sklearn\base.py", line 12, in <module>
    from .utils.fixes import signature
  File "C:\Python27\lib\site-packages\sklearn\utils\__init__.py", line 11, in <module>
    from .validation import (as_float_array,
  File "C:\Python27\lib\site-packages\sklearn\utils\validation.py", line 18, in <module>
    from ..utils.fixes import signature
  File "C:\Python27\lib\site-packages\sklearn\utils\fixes.py", line 291, in <module>
    from scipy.sparse.linalg import lsqr as sparse_lsqr
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\__init__.py", line 112, in <module>
    from .isolve import *
  File "C:\Python27\lib\site-packages\scipy\sparse\linalg\isolve\__init__.py", line 6, in <module>
    from .iterative import *
  File "C:\Python27\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.

请帮助我尝试了一切,但没有任何效果。我也试过这些解决方案: ImportError: DLL load failed: Le module spécifié est introuvable

ImportError: DLL load failed: The specified module could not be found

7 个答案:

答案 0 :(得分:5)

这条线指向scipy。

from scipy.sparse.linalg import lsqr as sparse_lsqr

您可以尝试:

pip uninstall scipy

pip install scipy

享受!

答案 1 :(得分:2)

您应该打开&#34; C:\ Python27 \ lib \ site-packages \ sklearn \ utils \ fixes.py&#34;,然后编辑内容。您应该进行两项具体更改:

首先,将https://github.com/scikit-learn/scikit-learn/blob/74a9756fa784d1f22873ad23c8b4948c6e290108/sklearn/utils/fixes.py的内容复制并粘贴到文件&#34; C:\ Python27 \ lib \ site-packages \ sklearn \ utils \ fixes.py& #34;

第二次,将np_version < (1, 12, 0):替换为if np_version < (1, 12):

更多背景信息和详细信息here,来自用户DSM的精彩回答。

答案 2 :(得分:2)

重新安装 scipynumpyscikit-learn 软件包修复了我的错误。

答案 3 :(得分:1)

安装此numpy库而不是您使用的库:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

我假设您安装了Intel Math Kernal Libary。

答案 4 :(得分:0)

我发现了一个愚蠢的解决方案,类似于@saggy的解决方案:从命令行迭代运行脚本,如果比较“ DLL错误”,请查找软件包/模块/库/ wattelapesca名称,然后{{1} },然后重新安装

作为伪代码:

pip uninstall thatPackage

答案 5 :(得分:0)

对于我来说,请在conda env中卸载scipy,然后使用pip进行重新安装。

卸载:conda remove --force scipy

安装:pip install scipy

答案 6 :(得分:0)

DLL丢失的原因可能多种多样。在您的情况下,似乎sklearn及其依赖项之间不匹配(也许安装了不同的32位或64位软件包)。由于不同的答案指向不同的软件包,因此找出依赖关系的一般方法是使用:

pip show scikit-learn

,输出为:

名称:scikit-learn

版本:0.23.1

摘要:一组用于机器学习和数据挖掘的python模块

主页:http://scikit-learn.org

作者:无

作者电子邮件:无

许可:新的BSD

位置:c:\ users \ username \ appdata \ local \ programs \ python \ python37 \ lib \ site- 包

要求:joblib,numpy,threadpoolctl,scipy

因此,根本问题很可能返回到“ Requires”包之一。 顺便说一句,错误行也可以指出哪个包导致错误。 尝试重新安装这些软件包应该可以解决问题。