sklearn报错:ImportError: cannot import name ‘BaseEstimator‘ from partially initialized module ‘sklearn

问题描述

在调用sklearn中的方法过程中报错,引入包的时候就出现错误。

报错信息

ImportError: cannot import name ‘BaseEstimator’ from partially initialized module ‘sklearn.base’ (most likely due to a circular import) (D:\Anaconda3\envs\labelimg\lib\site-packages\sklearn\base.py)

随后不管是调用Kmeans还是SVM均报同样的错误,按照网上的方法说sklearn还要安装一些依赖库,numpy、mkl、scipy。但是安装之后还是报错。

原因分析

文件中循环导入了 BaseEstimator。但我只导入sklearn中的方法后就开始报错,不存在多次调用的问题。

解决方案

后来发现,我运行程序的文件名为:copy.py,这可能和sklearn内部的方法重名导致,调用错误。只需要修改文件名即可正常运行。除了sklearn,在调用其它模块的时候报循环调用的错误的时候,都可以考虑一下是否是文件名重复。

附加

Sklearn中使用了大量numpy中的方法内容(这也就是刚开始说的,要提前安装numpy包),但在numpy的1.24版本之后,numpy已经不在使用np.float ,若是直接使用pip安装numpy会安装最新版本的numpy,而报错,报错信息为:

你可能感兴趣的:(报错处理,sklearn,python)