导入sklearn的CountVectorizer时报TypeError: issubclass()参数2需为类或元组怎么解决
报错原因
- 你写的导入代码本身没有语法错误,报错触发在sklearn底层依赖初始化阶段,核心是scikit-learn与numpy版本不兼容。
- 该错误通常出现在旧版scikit-learn搭配过高版本numpy的环境中:你当前使用的Python 3.7最高仅支持到scikit-learn 0.24版本,如果numpy版本高于1.19.5,旧版scikit-learn用Cython编译的底层模块(如murmurhash)的类型校验逻辑无法适配新版numpy的类结构,就会触发该
issubclass参数类型错误。
解决方法
- 方案一:降级numpy到兼容版本
执行命令:pip install numpy==1.19.5
安装完成后重启代码运行环境,重新导入即可正常使用。 - 方案二:升级scikit-learn到Python 3.7支持的最高适配版本
执行命令:pip install scikit-learn==0.24.2 - 方案三:如果环境内存在多版本依赖冲突,可新建干净的虚拟环境,重新安装匹配版本的依赖包即可。
内容的提问来源于stack exchange,提问作者jade
相关产品推荐
相关产品推荐

