一、报错信息

在windows下使用spacy安装对应的语言模块时,发现其是从github上下载的,使用 python -m spacy download zh_core_web_sm 或 python -m spacy download en时都会报错,报错内容为:requests.exceptions.ConnectionError: HTTPSConnectionPool(host=’raw.githubusercontent.com’, port=443): Max retries exceeded with url: /explosion/spacy-models/master/shortcuts-v2.json (Caused by NewConnectionError(‘: Failed to establish a new connection: [Errno 11004] getaddrinfo failed’)) 。

二、解决方法

这里使用了两步,解决了该问题:

1、SSL库文件复制

这部分参照的 stackoverflow 上提供的思路,将以下两个文件从Anaconda3\Library\bin目录复制一份到Anaconda3\DLLs目录(我使用的miniconda同样适用):

1libcrypto-1_1-x64.*
2libssl-1_1-x64.*

使用上面的方法操作后,发现还是会报错。

2、修改hosts文件

这部分参照的 github 上有人提到的方法,打分 https://www.ipaddress.com/ 站点,查询报错的github域名的对应的IP地址,如raw.githubusercontent.com 对应的IP是199.232.68.133,最终需要将hosts里增加如下内容:

1199.232.68.133 raw.githubusercontent.com
2199.232.68.133 user-images.githubusercontent.com
3199.232.68.133 avatars2.githubusercontent.com
4199.232.68.133 avatars1.githubusercontent.com

以上两部操作完成后,虽然速度下载的有点慢,不过总算可以下载了。

三、其他

除了上面提到的方法,还可以直接通过打开https://github.com/explosion/spacy-models/tags 页面找到对应的模块后,使用pip 直接安装,安装方法如下:

1pip install en_core_web_sm-2.0.0.tar.gz

完装完成后,可能还会遇到这样的错误提示:

1Download successful but linking failed
2Creating a shortcut link for ‘en’ didn’t work (maybe you don’t have admin
3permissions?), but you can still load the model via its full package name: nlp =
4spacy.load(‘en_core_web_sm’)

遇到这个错误后,可以使用mklink命令做软连接或者直接使用快捷方式,其对应的源目录为Lib\site-packages\en_core_web_sm ,需要软链接的目录为Lib\site-packages\spacy\data\en ,当然也可以以管理身份重新打开cmd或pycharm后,再次使用上面的pip命令安装下en_core_web_sm。