Python中polyglot模块导入失败求助:提示“polyglot不是包”
解决Polyglot模块导入报错:ModuleNotFoundError
嘿,我之前也踩过polyglot安装的坑,别慌,咱们来一步步排查解决!
问题原因分析
你提到polyglot安装在D:\Anaconda\Lib\site-packages\polyglot-16.7.4-py3.7.egg\polyglot目录下,这个egg包是Python的旧版分发格式,有时候Anaconda的Python解释器没法自动识别egg包内的模块结构,导致它认为polyglot不是一个可导入的包,所以抛出了ModuleNotFoundError。
具体解决方法
方法1:解压egg包到site-packages(推荐)
egg包本质是个压缩文件,咱们直接把里面的polyglot文件夹拿出来放到site-packages根目录:
- 找到
D:\Anaconda\Lib\site-packages\polyglot-16.7.4-py3.7.egg,用压缩软件(比如7-Zip、WinRAR)解压它,得到里面的polyglot文件夹。 - 把这个
polyglot文件夹复制到D:\Anaconda\Lib\site-packages目录下(如果原来有同名文件夹,直接覆盖就行)。
方法2:用pip重新安装polyglot
有时候egg包安装会有兼容性问题,直接用pip重新安装更稳妥:
- 先卸载现有版本:
pip uninstall polyglot -y - 重新安装polyglot,顺便装上它的依赖(避免后续报错):
pip install polyglot pycld2 morfessor
方法3:临时添加egg路径到sys.path(应急用)
如果不想动安装结构,可以在代码开头手动把egg包路径加入Python的搜索路径:
import sys # 注意路径里的反斜杠要转义成双反斜杠 sys.path.append("D:\\Anaconda\\Lib\\site-packages\\polyglot-16.7.4-py3.7.egg") # 现在再导入模块 from polyglot.transliteration import Transliterator from polyglot.mapping import Embedding from polyglot.load import load_embeddings
验证解决
做完上面的操作后,重启你的Python解释器(或者IDE),再尝试导入模块,如果没有报错,就说明问题解决啦!
内容的提问来源于stack exchange,提问作者sawsan alzubi
相关产品推荐
相关产品推荐

