Python导入corenlp时报错:重复符号'edu.stanford.nlp.pipeline.Language'
解决
import corenlp时的protobuf重复符号错误 清理冲突的protobuf版本
先卸载当前所有protobuf版本:pip uninstall -y protobuf
安装与Stanford CoreNLP 4.5.1兼容的指定版本(经测试3.20.3适配性良好):pip install protobuf==3.20.3
执行pip show protobuf确认版本安装正确。重置corenlp依赖
完全卸载并重新安装corenlp,避免残留的重复proto文件:pip uninstall -y corenlp && pip install corenlp
若仍有问题,可手动检查Python环境的site-packages/corenlp/proto目录,删除存在重复edu.stanford.nlp.pipeline.Language定义的冗余文件。用虚拟环境隔离依赖
创建独立虚拟环境避免全局依赖冲突:python -m venv corenlp_env
激活虚拟环境:- Windows:
corenlp_env\Scripts\activate - Linux/macOS:
source corenlp_env/bin/activate
在虚拟环境内重新安装适配的依赖:pip install corenlp protobuf==3.20.3
- Windows:
手动重置描述符池(进阶方案)
若以上方法无效,可在导入corenlp前手动清空protobuf默认描述符池,代码如下:from google.protobuf.descriptor_pool import DescriptorPool DescriptorPool.ClearDefault() import corenlp注意:该操作可能影响其他依赖protobuf的库,仅作为最后尝试。
内容的提问来源于stack exchange,提问作者Apeksha
相关产品推荐
相关产品推荐

