9

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

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 加载失败:找不到指定的模块

4

7 回答 7

21

这条线指向 scipy。

from scipy.sparse.linalg import lsqr as sparse_lsqr

你可以试试:

pip uninstall scipy

pip install scipy

请享用!

于 2018-05-10T01:08:03.903 回答
3

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

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

其次,将行 if 替换np_version < (1, 12, 0):if np_version < (1, 12):

更多背景信息和详细信息可在此处获得,来自用户DSM的出色回答。

于 2017-03-12T01:31:37.753 回答
2

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

于 2021-01-13T09:45:50.737 回答
1

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

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

我假设您已安装英特尔数学内核库。

于 2017-10-14T13:55:48.030 回答
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-packages

需要:joblib、numpy、threadpoolctl、scipy

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

于 2020-06-15T10:32:25.537 回答
0

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

卸载:conda remove --force scipy

安装:pip install scipy

于 2020-04-09T06:19:23.197 回答
0

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

作为伪代码:

notWorking = true
while( nonFunge ){
    run_the_script_from_command_line()
    output = get_last_cmd_output()
    if( "ImportError: DLL load failed: blabla" in output ){
        doomed_package = look_for_package_module_library_wattelapesca(output)
        exec("pip uninstall " + doomed_package )
        exec("pip install " + doomed_package )
    }else # all ok, the script works
         notWorking = false
}
于 2020-01-25T09:45:10.367 回答