ImportError:无法从sklearn.model_selection导入StratifiedGroupKFold问题求助
问题排查与解决步骤
1 普通环境下导入失败的修复方案
你需要先完全卸载现有scikit-learn版本再安装nightly build,避免多版本共存导致的冲突,操作步骤如下:
- 先执行多次卸载命令清除所有残留版本:
如果是pip安装的版本,执行pip uninstall scikit-learn -y,重复执行直到提示「未找到scikit-learn安装包」为止
如果是conda安装的版本,执行conda remove scikit-learn -y完成卸载 - 安装nightly开发版本:
pip安装命令:pip install --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple scikit-learn
conda安装命令:conda install -c scipy-wheels-nightly scikit-learn - 安装后验证版本是否正确:执行
python -c "import sklearn; print(sklearn.__version__)",正常返回的版本号后缀会带有.dev标识,随后验证导入逻辑python -c "from sklearn.model_selection import StratifiedGroupKFold; print('导入成功')"
2 虚拟环境中Jupyter Notebook无法导入的修复方案
该问题为Jupyter内核未绑定到目标虚拟环境导致,按以下步骤修复:
- 激活你新建的带nightly版本的虚拟环境,安装ipykernel依赖:
pip install ipykernel - 将当前虚拟环境注册为Jupyter可用内核:
python -m ipykernel install --user --name=替换为你的虚拟环境名称 - 重启Jupyter Notebook,打开代码文件后点击顶部菜单栏「Kernel」→「Change Kernel」,选择你刚才注册的虚拟环境内核即可
- 可在Jupyter中执行以下代码验证环境匹配性:
import sklearn print(sklearn.__version__) print(sklearn.__file__)
如果返回的版本号带.dev后缀,且文件路径指向你新建的虚拟环境下的site-packages目录,即可正常导入目标类。
3 其他容易遗漏的检查点
- 安装nightly版本时不要使用
pip install -U scikit-learn命令,该命令只会拉取最新正式版,不会安装开发版本 - 安装前建议临时关闭终端代理,避免镜像源缓存导致拉取到正式版安装包
- 多Python版本环境下注意使用对应版本的pip工具,例如Python3.9使用
pip3而非默认的pip
内容的提问来源于stack exchange,提问作者user42
相关产品推荐
相关产品推荐

