ImportError:无法导入名称“_safe_split”

Posted

技术标签:

【中文标题】ImportError:无法导入名称“_safe_split”【英文标题】:ImportError: cannot import name '_safe_split' 【发布时间】:2017-04-22 18:46:53 【问题描述】:

我在尝试使用 train_test_split 函数时遇到以下错误。然后我尝试安装scipy,但没有帮助。有谁知道我可能从下面的错误中遗漏了什么?谢谢!


ImportError                               Traceback (most recent call last)
<ipython-input-53-57bf27feca45> in <module>()
      1 import numpy as np
----> 2 from sklearn.model_selection import train_test_split
      3 
      4 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=42)

/usr/local/lib/python3.4/dist-packages/sklearn/model_selection/__init__.py in <module>()
     15 from ._split import check_cv
     16 
---> 17 from ._validation import cross_val_score
     18 from ._validation import cross_val_predict
     19 from ._validation import learning_curve

/usr/local/lib/python3.4/dist-packages/sklearn/model_selection/_validation.py in <module>()
     25 from ..utils.fixes import astype
     26 from ..utils.validation import _is_arraylike, _num_samples
---> 27 from ..utils.metaestimators import _safe_split
     28 from ..externals.joblib import Parallel, delayed, logger
     29 from ..metrics.scorer import check_scoring

ImportError: cannot import name '_safe_split'

【问题讨论】:

看一看:github.com/scikit-learn/scikit-learn/issues/7582 【参考方案1】:

这通常发生在您更新 Anaconda 中的某些软件包之后。请首先确认您是否也安装了 Anaconda。 试试这个来帮助你导入 train_test_split:

from sklearn.cross_validation import train_test_split

如果可行,请尝试同时使用 conda 和 pip 卸载它,然后使用 pip 安装它,看看是否可以使用常规方式导入它。 我曾经不小心在 python 上同时安装了“scikit-learn”和“sklearn”包,这也可能导致问题。

【讨论】:

【参考方案2】:

奇怪的是:升级到 scikit 版本到 0.18.1 后出现这个错误

我重新启动了 python 控制台,它解决了我的问题。

【讨论】:

【参考方案3】:

我遇到了同样的问题并通过导入“Scipy”、“Numpy”、“Pandas”、“Matplotlib”解决了,最初我更新了“Scikit-learn”。

【讨论】:

【参考方案4】:

我通过将 scikit 的版本更新到 0.18.1 解决了同样的问题

【讨论】:

以上是关于ImportError:无法导入名称“_safe_split”的主要内容,如果未能解决你的问题,请参考以下文章

ImportError:无法导入名称“WebClient”

ImportError:无法导入名称“AFAVSignature”

ImportError:无法导入名称“评估”(来自意外导入评估)

Django 'ImportError: 无法导入名称 url'

ImportError:导入 PCA 时无法导入名称“LatentDirichletAllocation”[关闭]

如何修复“ImportError:无法导入名称'StringIO'”