Spacy导入报错:无法从spacy.lang.char_classes导入COMBINING_DIACRITICS
Spacy导入错误:无法导入'COMBINING_DIACRITICS'问题排查
我尝试用import spacy导入Spacy库时,触发如下导入错误:
ImportError: cannot import name 'COMBINING_DIACRITICS' from 'spacy.lang.char_classes'
我的环境版本信息:
spacy==3.7.2 spacy-legacy==3.0.12 thinc==8.2.2 pydantic==1.8.2 pydantic_core==2.14.6 python version - 3.9.18
我已尝试重新安装、升级Spacy等常规排查操作,但问题仍存在,请问问题根源是什么?
完整报错堆栈如下:
ImportError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_33180\572880994.py in ----> 1 import spacy c:\Users\anaconda3\lib\site-packages\spacy\__init__.py in 11 from thinc.api import Config, prefer_gpu, require_cpu, require_gpu # noqa: F401 12 ---> 13 from . import pipeline # noqa: F401 14 from . import util 15 from .about import __version__ # noqa: F401 c:\Users\anaconda3\lib\site-packages\spacy\pipeline\__init__.py in ----> 1 from .attributeruler import AttributeRuler 2 from .dep_parser import DependencyParser 3 from .edit_tree_lemmatizer import EditTreeLemmatizer 4 from .entity_linker import EntityLinker 5 from .entityruler import EntityRuler c:\Users\anaconda3\lib\site-packages\spacy\pipeline\attributeruler.py in 6 from .. import util 7 from ..errors import Errors ---> 8 from ..language import Language 9 from ..matcher import Matcher 10 from ..scorer import Scorer ... 3 ALPHA_LOWER, 4 ALPHA_UPPER, 5 COMBINING_DIACRITICS, ImportError: cannot import name 'COMBINING_DIACRITICS' from 'spacy.lang.char_classes' (c:\Users\anaconda3\lib\site-packages\spacy\lang\char_classes.py)
问题根源
核心原因是依赖版本不兼容:你当前使用的pydantic==1.8.2是旧版本,而pydantic_core==2.14.6是适配pydantic v2+的核心库,两者无法兼容。这种冲突会间接导致Spacy内部模块的导入逻辑异常,最终出现找不到COMBINING_DIACRITICS的错误。
解决步骤
- 卸载冲突的pydantic包:
pip uninstall -y pydantic pydantic_core
- 安装与Spacy 3.7.2兼容的pydantic版本:
pip install pydantic==1.10.13
- 验证修复:重新运行
import spacy确认问题解决。
内容的提问来源于stack exchange,提问作者Apoorva
相关产品推荐
相关产品推荐

