Conda环境下载spaCy模型触发TypeError错误求助
解决spaCy模型下载时的TypeError: issubclass() arg 1 must be a class错误
问题背景
执行python -m spacy download en_core_web_sm时触发TypeError,环境配置:
- spaCy 3.7.2
- typing_extensions 4.9.0
- typing 3.7.4.3
已尝试升级spaCy、typing及typing_extensions但问题未解决,核心错误栈如下:
File "D:\anaconda3\lib\typing.py", line 774, in __subclasscheck__ return issubclass(cls, self.__origin__) TypeError: issubclass() arg 1 must be a class
根本原因
Python 3.7及以上版本标准库已内置typing模块,你安装的第三方typing包(版本3.7.4.3)是为Python 3.5/3.6等旧版本设计的,会覆盖系统自带的typing模块,导致与spaCy依赖的pydantic类型检查逻辑冲突,触发上述错误。
解决方案
卸载第三方typing包
执行命令:pip uninstall -y typing确保pydantic版本与spaCy兼容
spaCy 3.7.x要求pydantic版本范围是>=1.8.2,<3.0.0,先检查当前版本:pip show pydantic若版本不在范围内,安装兼容版本:
pip install "pydantic>=1.8.2,<3.0.0"重新下载模型
再次执行命令:python -m spacy download en_core_web_sm
内容的提问来源于stack exchange,提问作者doog_math
相关产品推荐
相关产品推荐

