首次ML编程遇sklearn导入错误:无法导入__check_build(疑似循环导入)
解决sklearn循环导入:无法导入
__check_build的问题 刚入门机器学习就栽在导入模块这一步,确实挺闹心的——我之前也碰到过类似的循环导入坑,给你几个更针对性的排查和解决方向:
彻底清理并重装兼容版本的sklearn
有时候残留的损坏文件或者版本不兼容是罪魁祸首,按这个步骤来:- 先完全卸载相关依赖:
- 虚拟环境激活后,用pip卸载:
pip uninstall -y scikit-learn scipy numpy - 如果是conda环境,用:
conda remove -y scikit-learn scipy numpy
- 虚拟环境激活后,用pip卸载:
- 手动清理残留文件:
找到你提到的路径C:\Users\bahramhh\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages,删除所有带sklearn、scipy、numpy的文件夹和相关的.dist-info目录 - 重装指定兼容版本(针对Python3.8,这些版本稳定性拉满):
pip install scikit-learn==1.2.2 scipy==1.10.1 numpy==1.24.3
- 先完全卸载相关依赖:
排查虚拟环境的环境优先级问题
有时候系统Python和虚拟环境的路径会打架,先确认虚拟环境真的激活到位了:- 激活虚拟环境后,在CMD里输
where python和where pip,看看输出的路径是不是完全指向你的虚拟环境目录,要是混了系统路径,就把旧虚拟环境删了重建:- 删除旧环境:
rmdir /s ml_env(把ml_env换成你的环境名) - 新建纯净环境:
python -m venv ml_env - 重新激活:
ml_env\Scripts\activate
- 删除旧环境:
- 激活后再重新安装sklearn,确保所有依赖都装在虚拟环境里
- 激活虚拟环境后,在CMD里输
检查项目目录的同名文件干扰
这个坑很容易忽略:看看你的项目文件夹里有没有自己命名的sklearn.py、scipy.py或者numpy.py文件,这些文件会和官方库的模块名冲突,直接导致循环导入。如果有,立刻改名或者删掉它们。强制重装跳过缓存
要是上面的方法都不行,试试用强制重装的命令跳过缓存,避免残留的损坏缓存文件影响:pip install --force-reinstall --no-cache-dir scikit-learn
完成后可以在Python交互窗口里验证:输入import sklearn; print(sklearn.__version__),如果能正常输出版本号,说明问题解决了。
内容的提问来源于stack exchange,提问作者bahram hh
相关产品推荐
相关产品推荐

