如何解决PyCharm中导入sklearn时的DLL加载失败错误?
解决scikit-learn导入时的DLL加载失败问题
从你的报错信息能看出来,真正的问题不是sklearn本身,而是scipy依赖的BLAS相关DLL文件缺失——sklearn在初始化过程中会调用scipy的线性代数模块,而scipy加载_fblas这个核心组件时找不到对应的系统依赖文件。下面是几个针对性的解决方案,按优先级尝试:
1. 重新安装兼容版本的scipy
Windows系统下,scipy的某些版本和Python/系统架构(32位/64位)不匹配时很容易出DLL问题,建议先卸载现有版本再安装兼容的稳定版:
- 打开PyCharm的Terminal,确保激活了项目的虚拟环境(如果没自动激活,输入
venv\Scripts\activate) - 卸载scipy:
pip uninstall scipy -y - 安装适配的版本,比如对Windows兼容性较好的1.7.3版(适配Python3.7~3.10):
pip install scipy==1.7.3
2. 确认PyCharm使用的是正确的虚拟环境
有时候PyCharm可能误用到了全局Python解释器,导致安装的包不在项目环境里:
- 打开
File > Settings > Project: [你的项目名] > Python Interpreter - 确认列表里的解释器是项目
venv文件夹下的python.exe,并且能看到scipy和scikit-learn已安装
3. 安装Microsoft Visual C++ Redistributable
绝大多数Python科学计算库(包括scipy)都依赖微软的C++运行时库,如果你的系统没装,会导致DLL加载失败:
- 下载对应你系统架构的Microsoft Visual C++ Redistributable(比如2019或2022版的x64版本)
- 安装完成后重启PyCharm,再运行代码测试
4. 重建虚拟环境
如果上述方法都无效,可能是虚拟环境本身存在损坏:
- 删除项目根目录下的
venv文件夹 - 在PyCharm里重新创建虚拟环境:
File > Settings > Python Interpreter > Add > Virtualenv Environment,选择创建新环境,指定路径后确认 - 重新安装所有依赖:
pip install numpy scipy scikit-learn
验证方法
在PyCharm的Python Console里输入以下代码,测试是否能正常导入:
import scipy.linalg from sklearn.model_selection import cross_validate
如果没有报错,说明问题已经解决了。
内容的提问来源于stack exchange,提问作者Lsluger




