安装spacy库出现错误OSError: [E050] Can‘t find model ‘en‘.以及安装成功了但是有些功能无法使用等问题

在python运行环境中运行如下代码
import spacy
nlp = spacy.load(‘en’)
出现如下错误:OSError: [E050] Can’t find model ‘en’. It doesn’t seem to be a shortcut link, a Python package or a valid path to a data directory.

出现这个错误的说是无法找到‘en’这个模块。

解决办法

我的系统是windows,使用的pycharm,python版本是3.7.2。

前提你已经正确、完整的安装spacy第三方库及所需要的模块。
假设你已经完成spacy安装 ,以及其所需要的模块。出现上面的报错,你可以将
nlp = spacy.load(‘en’)
中的 ‘en’ 改为 ’en_core_web_sm‘
再次运行,如果出现 错误:
Can‘t find model ‘en_core_web_sm‘. It doesn‘t seem to be a shortcut link,

根据我解决这个问题的经验是,你没有完成前提条件,需要将spacy卸载,以及卸载掉spacy-legacy,murmurharsh,jiana, 还有是cyum,还是什么来自忘了。总之要卸载掉spacy ,spacy-legacy,murmurharsh。
然后重新安装spacy

重新安装步骤如下:
1 代开终端 输入

**pip install -U pip setuptools wheel
		  pip install spacy**

2 在终端输入

pip install spacy[lookups]

为什么要执行这个命令,看官网原文的解释更清楚
“To install additional data tables for lemmatization and normalization”
3 下载模块包
3.1 这个命令能够让你下载到最适合你当前spacy版本 的模板包,这个好像容易出错,我没有成功,有兴趣的可以试一下。

python -m spacy download en_core_web_sm

3.2 自己去官网下载所需要的版本**.tar.gz archive** 或者 .whl文件,然后使用终端命令跳转到你下载的.tar.gz archive文件路径下,安装。
如下例子

pip install en_core_web_sm-3.0.0.tar.gz
pip install en_core_web_sm-3.0.0-py3-none-any.whl

3.3 这个方法不需要去官网下载.tar.gz archive或者.whl文件,不过需要确定模块包的版本号。当然这个方法也需要一定的网速,不过问题不大。

pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz

版本号就是那些数字。如“en_core_web_sm-3.0.0”后面的3.0.0就是版本号。

当完成以上步骤后就可以进行尝试,不出意外应该能成功。

import spacy
nlp = spacy.load('en_core_web_sm')
上一篇:OSError: [E050] Can‘t find model ‘en‘. It doesn‘t seem to be a shortcut link, a Python package or a


下一篇:Python OSError: [Errno 22] Invalid argument:的出现和解决