ModuleNotFoundError:没有名为“sklearn.externals.six”的模块

Fre*_*zzi 26 python importerror scikit-learn

我不断收到错误

ModuleNotFoundError: No module named 'sklearn.externals.six'
Run Code Online (Sandbox Code Playgroud)

运行以下代码时:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd
import mglearn
import numpy as np
from IPython.display import display
import matplotlib as pl
import sklearn

iris_dataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
pd.plotting.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15), marker='o', hist_kwds={'bins':20}, s=60, alpha=.8, cmap=mglearn.cm3)
Run Code Online (Sandbox Code Playgroud)

是否有我尚未导入或安装的模块?

小智 25

你可以使用类似下面的东西..

from six import StringIO
Run Code Online (Sandbox Code Playgroud)

  • 这是为了在导入模块之前替换“from sklearn.externals.six import StringIO”等行,如果不可能,则替换“sys.modules['sklearn.externals.six'] = Six”(如下所述。)与有问题的线路。 (3认同)

小智 14

可以使用官方的六包。首先使用:安装六个:pip install six 然后导入模块。无需降级 scikit-learn。


小智 13

模块 sklearn.externals.six 已在 0.23 版中删除。如果你想使用这个模块,你必须降级到 0.22 或更低版本。


小智 8

你可以尝试这个:-

import six
import sys
sys.modules['sklearn.externals.six'] = six
Run Code Online (Sandbox Code Playgroud)

这对我有用。

礼貌 - https://github.com/alkaline-ml/pmdarima/issues/355


小智 6

降级您的 scikit-learn 版本:

在 jupyter 笔记本中尝试 !pip install --upgrade scikit-learn==0.20.3

或在终端尝试 pip install --upgrade scikit-learn==0.20.3

之后代码将识别 sklearn.external.six 模块。