简体   繁体   English

ImportError:无法从“sklearn.utils.metaestimators”导入名称“available_if”

[英]ImportError: cannot import name 'available_if' from 'sklearn.utils.metaestimators'

I am using the below code:我正在使用以下代码:

import sklearn
from imblearn.pipeline import make_pipeline

but it is showing the below error for me:但它为我显示以下错误:

ImportError: cannot import name 'available_if' from 'sklearn.utils.metaestimators' (/databricks/python/lib/python3.8/site-packages/sklearn/utils/metaestimators.py)

Here is the complete error:这是完整的错误:

> ImportError                               Traceback (most recent call
> last) <command-3963464708539101> in <module>
>       1 import sklearn
> ----> 2 from imblearn.pipeline import make_pipeline
>       3 from imblearn.over_sampling import SMOTE
>       4 from imblearn.under_sampling import NearMiss
>       5 
> 
> /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py
> in import_patch(name, globals, locals, fromlist, level)
>     160             # Import the desired module. If you’re seeing this while debugging a failed import,
>     161             # look at preceding stack frames for relevant error information.
> --> 162             original_result = python_builtin_import(name, globals, locals, fromlist, level)
>     163 
>     164             is_root_import = thread_local._nest_level == 1
> 
> /databricks/python/lib/python3.8/site-packages/imblearn/__init__.py in
> <module>
>      51 else:
>      52     from . import combine
> ---> 53     from . import ensemble
>      54     from . import exceptions
>      55     from . import metrics
> 
> /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py
> in import_patch(name, globals, locals, fromlist, level)
>     160             # Import the desired module. If you’re seeing this while debugging a failed import,
>     161             # look at preceding stack frames for relevant error information.
> --> 162             original_result = python_builtin_import(name, globals, locals, fromlist, level)
>     163 
>     164             is_root_import = thread_local._nest_level == 1
> 
> /databricks/python/lib/python3.8/site-packages/imblearn/ensemble/__init__.py
> in <module>
>       4 """
>       5 
> ----> 6 from ._easy_ensemble import EasyEnsembleClassifier
>       7 from ._bagging import BalancedBaggingClassifier
>       8 from ._forest import BalancedRandomForestClassifier
> 
> /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py
> in import_patch(name, globals, locals, fromlist, level)
>     160             # Import the desired module. If you’re seeing this while debugging a failed import,
>     161             # look at preceding stack frames for relevant error information.
> --> 162             original_result = python_builtin_import(name, globals, locals, fromlist, level)
>     163 
>     164             is_root_import = thread_local._nest_level == 1
> 
> /databricks/python/lib/python3.8/site-packages/imblearn/ensemble/_easy_ensemble.py
> in <module>
>      19 from ..utils._docstring import _random_state_docstring
>      20 from ..utils._validation import _deprecate_positional_args
> ---> 21 from ..pipeline import Pipeline
>      22 
>      23 MAX_INT = np.iinfo(np.int32).max
> 
> /databricks/python_shell/dbruntime/PythonPackageImportsInstrumentation/__init__.py
> in import_patch(name, globals, locals, fromlist, level)
>     160             # Import the desired module. If you’re seeing this while debugging a failed import,
>     161             # look at preceding stack frames for relevant error information.
> --> 162             original_result = python_builtin_import(name, globals, locals, fromlist, level)
>     163 
>     164             is_root_import = thread_local._nest_level == 1
> 
> /databricks/python/lib/python3.8/site-packages/imblearn/pipeline.py in
> <module>
>      16 from sklearn.base import clone
>      17 from sklearn.utils import _print_elapsed_time
> ---> 18 from sklearn.utils.metaestimators import available_if
>      19 from sklearn.utils.validation import check_memory
>      20 
> 
> ImportError: cannot import name 'available_if' from
> 'sklearn.utils.metaestimators'
> (/databricks/python/lib/python3.8/site-packages/sklearn/utils/metaestimators.py)

output of sklearn. sklearn 的 output。 version : '0.24.1'版本:'0.24.1'

I have tried with a lot of things but it is not working.我已经尝试了很多东西,但它不起作用。 Please let me know if you have a solution for this.如果您对此有解决方案,请告诉我。 The can be incompatibility of versions but don't know which version works well.可能是版本不兼容,但不知道哪个版本运行良好。

Edit: Also, I am getting the below data:编辑:另外,我得到以下数据:

!pip install scikit-learn==1.1.1
print(sklearn.__version__)
sklearn.__path__

Output: Output:

Requirement already satisfied: scikit-learn==1.1.1 in /databricks/python3/lib/python3.8/site-packages (1.1.1)
Requirement already satisfied: scipy>=1.3.2 in /databricks/python3/lib/python3.8/site-packages (from scikit-learn==1.1.1) (1.6.2)
Requirement already satisfied: numpy>=1.17.3 in /databricks/python3/lib/python3.8/site-packages (from scikit-learn==1.1.1) (1.19.2)
Requirement already satisfied: joblib>=1.0.0 in /databricks/python3/lib/python3.8/site-packages (from scikit-learn==1.1.1) (1.0.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in /databricks/python3/lib/python3.8/site-packages (from scikit-learn==1.1.1) (2.1.0)
Out[45]: '0.24.1'
Out[46]: ['/databricks/python/lib/python3.8/site-packages/sklearn']

Here, it is getting version from /python/ and installing in /python3/ It might be the issue.在这里,它从 /python/ 获取版本并安装在 /python3/ 这可能是问题所在。 Don't know the solution.不知道解决办法。

Did you try using a virtual environment.您是否尝试过使用虚拟环境。 To create a venv(virtual environment): python -m venv venv_name To activate the venv: source venv_name/bin/activate创建 venv(虚拟环境): python -m venv venv_name激活 venv: source venv_name/bin/activate

I had to specific versions of numpy, pandas, dask-ml and scikit-learn to resolve this.我必须使用 numpy、pandas、dask-ml 和 scikit-learn 的特定版本来解决这个问题。

 numpy 1.22.4 pandas 1.2.4 dask-ml 2022.5.27 scikit-learn 1.1.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法从“sklearn.utils.metaestimators”导入名称“available_if” - Cannot import name 'available_if' from 'sklearn.utils.metaestimators' ImportError:无法从“sklearn.utils.fixes”导入名称“_argmax” - ImportError: cannot import name '_argmax' from 'sklearn.utils.fixes' 导入错误:无法从“sklearn.utils.validation”导入名称“_deprecate_positional_args”以导入 imblearn - ImportError: cannot import name '_deprecate_positional_args' from 'sklearn.utils.validation' to import imblearn 由于错误,无法导入 SMOTE &lt;<ImportError: cannot import name 'lobpcg' from 'sklearn.utils.fixes' > &gt; - Unable to import SMOTE due to error <<ImportError: cannot import name 'lobpcg' from 'sklearn.utils.fixes' >> 如何修复“ImportError: cannot import name '_raise_dep_warning_if_not_pytest' from 'sklearn.utils.deprecation'”? - How to fix “ImportError: cannot import name '_raise_dep_warning_if_not_pytest' from 'sklearn.utils.deprecation'”? 导入错误:无法从“sklearn.utils.fixes”导入名称“_astype_copy_false” - ImportError: cannot import name '_astype_copy_false' from 'sklearn.utils.fixes' 导入错误:无法从 sklearn.utils.validation 导入名称 check_array - ImportError: cannot import name check_array from sklearn.utils.validation ImportError:无法从“sklearn.utils”导入名称“safe_indexing” - ImportError: cannot import name 'safe_indexing' from 'sklearn.utils' YellowBrick ImportError:无法从“sklearn.utils”导入名称“safe_indexing” - YellowBrick ImportError: cannot import name 'safe_indexing' from 'sklearn.utils' 来自sklearn import svm ImportError:无法导入名称lsqr - from sklearn import svm ImportError: cannot import name lsqr
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM