Error when trying to import sklearn modules : ImportError: DLL load failed: The specified module could not be found
Question:
I tried to do the following importations for a machine learning project:
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
I got this error message:
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:Python27libsite-packagessklearn__init__.py", line 57, in <module>
from .base import clone
File "C:Python27libsite-packagessklearnbase.py", line 12, in <module>
from .utils.fixes import signature
File "C:Python27libsite-packagessklearnutils__init__.py", line 11, in <module>
from .validation import (as_float_array,
File "C:Python27libsite-packagessklearnutilsvalidation.py", line 18, in <module>
from ..utils.fixes import signature
File "C:Python27libsite-packagessklearnutilsfixes.py", line 291, in <module>
from scipy.sparse.linalg import lsqr as sparse_lsqr
File "C:Python27libsite-packagesscipysparselinalg__init__.py", line 112, in <module>
from .isolve import *
File "C:Python27libsite-packagesscipysparselinalgisolve__init__.py", line 6, in <module>
from .iterative import *
File "C:Python27libsite-packagesscipysparselinalgisolveiterative.py", line 7, in <module>
from . import _iterative
ImportError: DLL load failed: The specified module could not be found.
Please help I tried everything but nothing worked. I tried these solutions as well:
ImportError: DLL load failed: Le module spécifié est introuvable
ImportError: DLL load failed: The specified module could not be found
Answers:
You should open up “C:Python27libsite-packagessklearnutilsfixes.py”, and edit the contents. There are two specific changes you should make:
First, copy-and-paste the contents of https://github.com/scikit-learn/scikit-learn/blob/74a9756fa784d1f22873ad23c8b4948c6e290108/sklearn/utils/fixes.py into the file “C:Python27libsite-packagessklearnutilsfixes.py”.
Second, replace the line if np_version < (1, 12, 0):
with if np_version < (1, 12):
.
More background info and detail available here, in a great answer from user DSM.
Install this numpy library instead of the one you use:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
I assume you have Intel Math Kernal Libary installed.
This line points to scipy.
from scipy.sparse.linalg import lsqr as sparse_lsqr
You can try:
pip uninstall scipy
pip install scipy
enjoy!
i’ve found a silly solution, similar to the @saggy ones: iteratively run the script from command line, if compare a “DLL error” look for a package/module/library/wattelapesca name, then pip uninstall thatPackage
and re-install it
as a pseudocode:
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
}
For me uninstalling scipy in conda env and then reinstalling using pip works.
Uninstall: conda remove --force scipy
Install: pip install scipy
DLL missing can happen by a wide range of reasons. In your case it seems there is a mismatch between sklearn and its dependencies(Maybe different 32bit or 64bit installation of packages.). As different answers point out to different packages, a general way to find out dependencies is using:
pip show scikit-learn
and the output is:
Name: scikit-learn
Version: 0.23.1
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author: None
Author-email: None
License: new BSD
Location: c:usersusernameappdatalocalprogramspythonpython37libsite-
packages
Requires: joblib, numpy, threadpoolctl, scipy
So It’s probable that the root problem returns to one of ‘Requires’ packages.
By the way the error lines also can point out which package causes error.
Try reinstalling these packages should solve the problem.
Reinstallation of scipy
, numpy
, and scikit-learn
packages fixed the error in my case.
pip install –user –upgrade numpy
pip install –user –upgrade scipy
pip install –user –upgrade matplotlib
pip install –user –upgrade scikit-learn
I tried to do the following importations for a machine learning project:
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
I got this error message:
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:Python27libsite-packagessklearn__init__.py", line 57, in <module>
from .base import clone
File "C:Python27libsite-packagessklearnbase.py", line 12, in <module>
from .utils.fixes import signature
File "C:Python27libsite-packagessklearnutils__init__.py", line 11, in <module>
from .validation import (as_float_array,
File "C:Python27libsite-packagessklearnutilsvalidation.py", line 18, in <module>
from ..utils.fixes import signature
File "C:Python27libsite-packagessklearnutilsfixes.py", line 291, in <module>
from scipy.sparse.linalg import lsqr as sparse_lsqr
File "C:Python27libsite-packagesscipysparselinalg__init__.py", line 112, in <module>
from .isolve import *
File "C:Python27libsite-packagesscipysparselinalgisolve__init__.py", line 6, in <module>
from .iterative import *
File "C:Python27libsite-packagesscipysparselinalgisolveiterative.py", line 7, in <module>
from . import _iterative
ImportError: DLL load failed: The specified module could not be found.
Please help I tried everything but nothing worked. I tried these solutions as well:
ImportError: DLL load failed: Le module spécifié est introuvable
ImportError: DLL load failed: The specified module could not be found
You should open up “C:Python27libsite-packagessklearnutilsfixes.py”, and edit the contents. There are two specific changes you should make:
First, copy-and-paste the contents of https://github.com/scikit-learn/scikit-learn/blob/74a9756fa784d1f22873ad23c8b4948c6e290108/sklearn/utils/fixes.py into the file “C:Python27libsite-packagessklearnutilsfixes.py”.
Second, replace the line if np_version < (1, 12, 0):
with if np_version < (1, 12):
.
More background info and detail available here, in a great answer from user DSM.
Install this numpy library instead of the one you use:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
I assume you have Intel Math Kernal Libary installed.
This line points to scipy.
from scipy.sparse.linalg import lsqr as sparse_lsqr
You can try:
pip uninstall scipy
pip install scipy
enjoy!
i’ve found a silly solution, similar to the @saggy ones: iteratively run the script from command line, if compare a “DLL error” look for a package/module/library/wattelapesca name, then pip uninstall thatPackage
and re-install it
as a pseudocode:
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
}
For me uninstalling scipy in conda env and then reinstalling using pip works.
Uninstall: conda remove --force scipy
Install: pip install scipy
DLL missing can happen by a wide range of reasons. In your case it seems there is a mismatch between sklearn and its dependencies(Maybe different 32bit or 64bit installation of packages.). As different answers point out to different packages, a general way to find out dependencies is using:
pip show scikit-learn
and the output is:
Name: scikit-learn
Version: 0.23.1
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author: None
Author-email: None
License: new BSD
Location: c:usersusernameappdatalocalprogramspythonpython37libsite-
packages
Requires: joblib, numpy, threadpoolctl, scipy
So It’s probable that the root problem returns to one of ‘Requires’ packages.
By the way the error lines also can point out which package causes error.
Try reinstalling these packages should solve the problem.
Reinstallation of scipy
, numpy
, and scikit-learn
packages fixed the error in my case.
pip install –user –upgrade numpy
pip install –user –upgrade scipy
pip install –user –upgrade matplotlib
pip install –user –upgrade scikit-learn