gustavowillam / SmartMapPlugin

Plugin Qgis3.10.x para interpolação utilizando Krigagem Ordinária (OK), Machine Learning (ML) e Geração de Zonas de Manejo
https://github.com/gustavowillam/SmartMapPlugin
GNU General Public License v3.0
52 stars 13 forks source link

No module named sklearn.metrics.cluster #24

Closed PedroVenancio closed 2 years ago

PedroVenancio commented 2 years ago

Hi,

I'm getting this error when starting QGIS.

Couldn't load plugin 'Smart_Map' due to an error when calling its classFactory() method 

ModuleNotFoundError: No module named 'sklearn.metrics.cluster._expected_mutual_info_fast' 
Traceback (most recent call last):
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 423, in _startPlugin
    plugins[packageName] = package.classFactory(iface)
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\__init__.py", line 36, in classFactory
    from .Smart_Map import smart_map
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\Smart_Map.py", line 93, in 
    from .utils import functions                               #Utility functions -> file functions.py
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Smart_Map\utils\functions.py", line 26, in 
    from sklearn import svm
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\svm\__init__.py", line 13, in 
    from ._classes import SVC, NuSVC, SVR, NuSVR, OneClassSVM, LinearSVC, \
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\svm\_classes.py", line 5, in 
    from ..linear_model._base import LinearClassifierMixin, SparseCoefMixin, \
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\linear_model\__init__.py", line 11, in 
    from ._least_angle import (Lars, LassoLars, lars_path, lars_path_gram, LarsCV,
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\linear_model\_least_angle.py", line 25, in 
    from ..model_selection import check_cv
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\model_selection\__init__.py", line 19, in 
    from ._validation import cross_val_score
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\model_selection\_validation.py", line 30, in 
    from ..metrics import check_scoring
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\metrics\__init__.py", line 37, in 
    from . import cluster
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\metrics\cluster\__init__.py", line 8, in 
    from ._supervised import adjusted_mutual_info_score
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
  File "C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\metrics\cluster\_supervised.py", line 24, in 
    from ._expected_mutual_info_fast import expected_mutual_information
  File "C:\Users/Agif/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\ee_plugin\__init__.py", line 32, in __wrapping_ee_import__
    _module_ = __builtin_import__(name, *args, **kwargs)
  File "C:\OSGeo4W/apps/qgis-ltr/./python\qgis\utils.py", line 888, in _import
    mod = _builtin_import(name, globals, locals, fromlist, level)
ModuleNotFoundError: No module named 'sklearn.metrics.cluster._expected_mutual_info_fast'

Python version: 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] 
QGIS version: 3.22.7-Białowieża Białowieża, 5a65627a 

I've python3-scikit-learn 0.23.2-1 from OSGeo4W.

gustavowillam commented 2 years ago

Hi @PedroVenancio

Did you already have Python installed on your computer?

I'm seeing from the error messages, that QGIS is fetching the sklearn python library in the folder: C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\

In this folder the sklearn version is 0.23.2 as you described.

In the plugin folder installed on your computer: C:\Users\Agif\AppData\Roaming\QGIS\QGIS3\profiles\default\python\site-packages\sklearn, there is sklearn library version 0.24.2.

An alternative would be to delete the C:\OSGeo4W\apps\Python39\lib\site-packages\sklearn\ folder thus forcing the plugin to fetch the sklearn library version 0.24.2 in the plugin folder, or update the library to version 0.24.2 via python's pip command.

PedroVenancio commented 2 years ago

Hi @gustavowillam Sorry for the late reply.

I only managed to solve this issue, deleting sklearn 0.23.2 from folder C:\OSGeo4W\apps\Python39\lib\site-packages and copy&pasting sklearn 0.24.2 from C:\Users\Agif\AppData\Roaming\QGIS\QGIS3\profiles\default\python\site-packages\sklearn to C:\OSGeo4W\apps\Python39\lib\site-packages.

Apparently it does not found the path to C:\Users\Agif\AppData\Roaming\QGIS\QGIS3\profiles\default\python\site-packages\sklearn.

gustavowillam commented 2 years ago

Check on your computer that QGIS is installed in the folder C:\Program Files\QGIS 3.22.7 If it is installed in this folder try to remove the C:\OSGEO4w folder Then open QGIS and see if it worked.

PedroVenancio commented 2 years ago

Hi @gustavowillam This is a clean machine with windows 11, I only have QGIS from OSGeo4W, I've never installed the standalone here. But it can be some local issue, as it only happens to me apparently. Let's keep this issue closed.

Obrigado Gustavo!!