[机器学习]解决 Conda 环境下安装sklearn成功却DLL load failed while importing _ufuncs: 找不到指定的程序

2,322 阅读1分钟

一.问题描述

报错一大片红,描述为

sklearn ImportError: DLL load failed while importing _ufuncs: 找不到指定的程序。

二、解决思路

scikit-learn包和它所依赖的numpymatplotlibPandasscipy等包版本冲突问题。

1.尝试使用conda删除重装:

 conda remove scikit-learn  
 conda remove scipy  
 conda remove numpy  

反复操作无效

2.升级scikit-learn版本为1.2.0

无效

三、解决方案:pip

弃用conda管理包,删除 scikit-learn 及其相关所有依赖后用pip重装

1.在当前虚拟环境下删除scikit-learn

打开conda 控制台,激活当前环境,并删除scikit-learn

conda remove scikit-learn 

2.使用pip重新安装

image.png 这时会提示你的要求已被满足,并给出了相关依赖地址。

进入相关文件夹,删除对应的所有同名文件和dist-info文件,如下图

image.png

再次执行

pip install scikit-learn

pip的包管理较成熟些,结果如下 image.png

sklearn可以正常调用了,以下是一个使用的sklearnsvm的程序,成功跑通:

image.png

四、总结

Conda只适合用来创建虚拟环境。除了Anaconda特别优化或独有的包以外,应当尽量用pip进行管理。

具体做法: 在conda create创建虚拟环境的时候
将必须由conda安装的package全部写到参数中,其他的package在环境创建完成后使用pip安装



引用: 为什么conda装包那么难用? - 知乎 (zhihu.com)