Jupyter Notebook出现No module named sklearn.model_selection报错的解决办法
解决
ImportError: No module named sklearn.model_selection的方案 这个问题大概率是终端和Jupyter Notebook使用的Python环境不一致,或者你的scikit-learn版本太老导致的,下面是一步步的排查和解决方法:
第一步:确认环境是否一致
首先得搞清楚终端和Notebook用的是不是同一个Python解释器:
- 在终端里运行:
记下输出的路径。# Linux/macOS which python # Windows where python - 在你的
boston_housing.ipynb里新建一个代码块,运行:
对比两个路径,如果不一样,说明Notebook用的是另一个Python环境,里面的scikit-learn要么没装,要么版本不对。import sys print(sys.executable)
第二步:让Notebook使用终端的环境
如果终端用的是虚拟环境(比如conda环境或者venv),按下面步骤操作:
- 回到终端,激活你的虚拟环境:
# conda环境示例 conda activate your_env_name # venv环境示例(Linux/macOS) source your_env_name/bin/activate # venv环境示例(Windows) your_env_name\Scripts\activate - 安装ipykernel(让Jupyter识别这个环境):
pip install ipykernel - 将这个环境添加到Jupyter的内核列表:
python -m ipykernel install --user --name=your_env_name --display-name="Python (your_env_name)" - 重启Jupyter Notebook,在右上角的Kernel菜单里选择刚刚添加的
Python (your_env_name)内核,再重新运行导入代码。
第三步:升级scikit-learn版本
如果环境是一致的,那很可能是你的scikit-learn版本太旧——sklearn.model_selection是在scikit-learn 0.18版本之后才新增的模块。
在Notebook里新建代码块,运行:
!pip install --upgrade scikit-learn
安装完成后,重启Notebook内核,再尝试导入模块。
额外检查:确认Python版本
如果上面的方法都没用,检查一下Notebook的Python版本是不是Python2(Python2已经停止维护,scikit-learn的新版本不再支持它):
import sys print(sys.version)
如果是Python2,建议切换到Python3环境,再重新安装scikit-learn。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

