Python 解决报错:OSError: [E050] Can‘t find model ‘en
目录
一、OSError: [E050] Can’t find model ‘en_core_web_md’.It doesn’t seem to be a Python package or a valid path to a data directory.
一、OSError: [E050] Can’t find model ‘en_core_web_md’.It doesn’t seem to be a Python package or a valid path to a data directory.
场景复现:在实现文本摘要生成,所以需要先下载语言库一类的包,用到了spacy库和en_core_web_sm,
在pycharm中运行代码,
spacy_en = spacy.load('en_core_web_md')
但是报错了:
OSError: [E050] Can't find model 'en_core_web_md'. It doesn't seem to be a Python package or a valid path to a data directory.
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/26/a6e0ff88688840a7aa034b22c5f6a32b.png)
原因:这个错误的原因是环境中找不到en_core_web_sm这个包。导致这个错误的原因有两个:
- 没有安装这个包;
- 安装了,但是还是提示找不到;
解决方法:本文针对第1种情况,
(1)找到Python虚拟环境或conda环境中的torchtext第三方库下载位置,
D:\my\python-pycharm\python-envs\venv-deep\Lib\site-packages\torchtext\legacy\data
打开torchtext\legacy\data,找到file.py文件,
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/15/77651b8ec64e4194b5466fe28ba0b984.png)
将其中函数参数tokenizer_language的值从’en’改为’en_core_web_sm’(共有两处)
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/f2/0fccb34f622e4e6d907d541103cd4b80.png)
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/85/dfab969c6ff5423ea90eb699a6882d4f.png)
修改完成,保存文件之后退出。
(2)可以通过以下命令来在pycharm的终端下载安装’en_core_web_sm’,但是很难成功
python -m spacy download en_core_web_sm
或者,直接从github下载,也可以访问其github仓库下载其他版本。
en_core_web_sm-3.0.0下载安装命令为:
pip install en_core_web_sm-3.0.0.tar.gz
下载完成之后的效果图:
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/85/f9f67f6359cb4805af321ff1c34fa079.png)
(3)重新再pycharm运行代码,
但是为什么还是报错??
我又查看了我安装的spacy与en_core_web_sm的版本是否有冲突,
【注】可以是任意版本,但必须符合en_core_web_sm对于spacy的版本要求(见后面)
en_core_web_sm · Releases · explosion/spacy-models · GitHub
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/a8/1f30e2bbe900418fa915849ead4cefaa.png)
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/be/415b0f56c6b945e8902f3a2131869193.png)
发现没有冲突。
(6)嗷嗷,突然意识到一件事。。。
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/40/9f783105f3cf44a7985ee8c5605f1236.png)
要使用这行代码代替之前的,
spacy_en = spacy.load('en_core_web_sm')
代替
spacy_en = spacy.load('en_core_web_md')
重新执行代码,
![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/38/d68a1aa653894dac8ca08da3d4a919d2.png)
ok,问题解决了,没有再报错了。
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/fbec2493fb.html

![Python 解决报错:OSError: [E050] Can‘t find model ‘en](/img/c2/ef3ab81984304c3d86d2e613e91132c0.png)