Error when trying to import sklearn modules : ImportError: DLL load failed: The specified module could not be found
Error when trying to import sklearn modules : ImportError: DLL load failed: The specified module could not be found
我尝试为机器学习项目执行以下导入:
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
您应该打开 "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-packages\sklearn\utils\fixes.py".
第二个,将np_version < (1, 12, 0):
行替换为if np_version < (1, 12):
.
提供更多背景信息和详细信息here, in a great answer from user DSM。
安装这个 numpy 库而不是您使用的库:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
我假设您已经安装了 Intel Math Kernal Libary。
此行指向 scipy。
from scipy.sparse.linalg import lsqr as sparse_lsqr
你可以试试:
pip uninstall scipy
pip install scipy
尽情享受吧!
我找到了一个愚蠢的解决方案,类似于@saggy 的解决方案:从命令行迭代 运行 脚本,如果比较 "DLL error" 查找 package/module/library/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
}
对我来说,在 conda env 中卸载 scipy,然后使用 pip 重新安装。
卸载:conda remove --force scipy
安装:pip install scipy
DLL 丢失的原因有很多种。在您的情况下,sklearn 及其依赖项之间似乎存在不匹配(可能是不同的 32 位或 64 位软件包安装。)。由于不同的答案指向不同的包,找出依赖项的一般方法是使用:
pip show scikit-learn
输出为:
名称:scikit-learn
版本:0.23.1
总结:一组python个用于机器学习和数据挖掘的模块
作者:None
作者邮箱:None
许可证:新 BSD
位置:c:\users\username\appdata\local\programs\python\python37\lib\site-
包裹
需要:joblib、numpy、threadpoolctl,scipy
所以根本问题 returns 很可能是 'Requires' 软件包之一。
顺便说一句,错误行还可以指出哪个包导致错误。
尝试重新安装这些软件包应该可以解决问题。
重新安装 scipy
、numpy
和 scikit-learn
软件包修复了我的错误。
我尝试为机器学习项目执行以下导入:
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
您应该打开 "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-packages\sklearn\utils\fixes.py".
第二个,将np_version < (1, 12, 0):
行替换为if np_version < (1, 12):
.
提供更多背景信息和详细信息here, in a great answer from user DSM。
安装这个 numpy 库而不是您使用的库:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
我假设您已经安装了 Intel Math Kernal Libary。
此行指向 scipy。
from scipy.sparse.linalg import lsqr as sparse_lsqr
你可以试试:
pip uninstall scipy
pip install scipy
尽情享受吧!
我找到了一个愚蠢的解决方案,类似于@saggy 的解决方案:从命令行迭代 运行 脚本,如果比较 "DLL error" 查找 package/module/library/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
}
对我来说,在 conda env 中卸载 scipy,然后使用 pip 重新安装。
卸载:conda remove --force scipy
安装:pip install scipy
DLL 丢失的原因有很多种。在您的情况下,sklearn 及其依赖项之间似乎存在不匹配(可能是不同的 32 位或 64 位软件包安装。)。由于不同的答案指向不同的包,找出依赖项的一般方法是使用:
pip show scikit-learn
输出为:
名称:scikit-learn
版本:0.23.1
总结:一组python个用于机器学习和数据挖掘的模块
作者:None
作者邮箱:None
许可证:新 BSD
位置:c:\users\username\appdata\local\programs\python\python37\lib\site- 包裹
需要:joblib、numpy、threadpoolctl,scipy
所以根本问题 returns 很可能是 'Requires' 软件包之一。 顺便说一句,错误行还可以指出哪个包导致错误。 尝试重新安装这些软件包应该可以解决问题。
重新安装 scipy
、numpy
和 scikit-learn
软件包修复了我的错误。