win10下运行了一段Python代码,出现了报错, 报错是ImportError: No module named model_selection。我定位代码到import sklearn.model_selection,我才知道原来我没有这个model。
我在网上找了一下解决方法,原来是scikit-learn的版本太低。在anaconda中通过命令行查看sklearn的版本为 0.17.1,而 sklearn.model_selection 是 sklearn 版本 0.18.1 以上的。那么我升级一下 scikit-learn 应该就可以了。
步骤如下所示:
1、在cmd环境下输入:conda list,就可以查看所有安装库的版本了;
2、0.17.1版本的 scikit-learn 版本太低,得更新为 0.18 版本的 scikit-learn 。
cmd 环境下输入:conda update scikit-learn
3、提示是否进行,输入:y
其实步骤到这里,已经可以了。
但是,但是我发现我update的速度超级慢,有点不可思议,而且在最后竟然告诉我没有安装成功。
我上网查得原因是官网的镜像在境外,所以直接update可能会比较慢或者不能访问,说明这个报错跟我的源有关,所以我就把我的源改成了清华大学的镜像源。
cmd环境下,输入:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
之后呢,我就再次update scikit-learn,以便升级版本到 0.18。
步骤还是和刚刚的一样:
1、在cmd环境下,升级版本:conda update scikit-learn
2、提示是否进行:y
升级完成后,要确认一下版本是否升级完成。
cmd环境下,输入:conda list
版本正确,那么我就在python环境下试下。
总结一下:
1、出现报错ImportError: No module named model_selection 的解决办法是升级 scikit-learn 的版本;
2、update官网在境外的库时,最好是找找看有没有国内的镜像源,比如清华大学的镜像源或者豆瓣、阿里云等等;
另外,其中可能会报权限错误:
根据提示来就行。
自己把sklearn更新为0.19版本,并把“from sklearn.model_selection import cross_val_predict”更改为以下这句就可以了:
from sklearn.cross_validation import cross_val_predict