记录犯的一个很傻的错误。
遇到的问题如题,
按照网上绝大多数的教程,尤其这篇,一顿操作,在虚拟环境里去升级自己的scikit-learn。
用这个指令:pip install -U scikit-learn
,升级
或者用这个:pip install --ignore-installed scikit-learn
,重装
或者:conda install scikit-learn
,安装
或者:conda update scikit-learn
,已有包的直接更新。
操作完以后,检查自己的版本是不是满足条件:conda list
然后出现:
scikit-learn 0.21.3 pypi_0 pypi
scipy 1.3.2 pypi_0 pypi
setuptools 39.1.0 pypi_0 pypi
simplegeneric 0.8.1 py_1 http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
sip 4.18.1 py35h6538335_0 http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
six 1.13.0 pypi_0 pypi
sklearn 0.0 pypi_0 pypi
其中scikit-learn的版本是在0.18.0之上的,也就是说,不存在因为老版本的名字是sklearn.cross_validation而导入不了的问题。
结果一运行程序,还是报标题的错误,郁闷。。。
仔细检查才发现,原来是自己导入的包名称有问题,应该是:from sklearn.model_selection import train_test_split
,而我的是from sklearn.model.selection import train_test_split
。
教训:
应该优先检查包导入名称是不是有问题,确认无误再怀疑环境有没有问题。