Python安装spacy报错: Can't connect to HTTPS URL because the SSL module is not available

Python安装spacy报错: Can't connect to HTTPS URL because the SSL module is not available

问题描述

作为新手刚开始学习NLP,在Windows上利用Anaconda自带的python安装spacy时,在cmd中输入命令:python -m spacy download en一直报错Can’t connect to HTTPS URL because the SSL module is not available
具体错误如下:

C:\Users\zhaocy>python -m spacy download en
Traceback (most recent call last):
File “F:\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 589, in urlopen
conn = self._get_conn(timeout=pool_timeout)
File “F:\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 251, in _get_conn
return conn or self._new_conn()
File “F:\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 827, in _new_conn
raise SSLError(“Can’t connect to HTTPS URL because the SSL "
urllib3.exceptions.SSLError: Can’t connect to HTTPS URL because the SSL module is not available.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “F:\Anaconda3\lib\site-packages\requests\adapters.py”, line 449, in send
timeout=timeout
File “F:\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File “F:\Anaconda3\lib\site-packages\urllib3\util\retry.py”, line 388, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=‘raw.githubusercontent.com’, port=443): Max retries exceeded with url: /explosion/spacy-models/master/shortcuts-v2.json (Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “F:\Anaconda3\lib\runpy.py”, line 193, in _run_module_as_main
main”, mod_spec)
File “F:\Anaconda3\lib\runpy.py”, line 85, in run_code
exec(code, run_globals)
File "F:\Anaconda3\lib\site-packages\spacy_main
.py”, line 31, in
plac.call(commands[command], sys.argv[1:])
File “F:\Anaconda3\lib\site-packages\plac_core.py”, line 328, in call
cmd, result = parser.consume(arglist)
File “F:\Anaconda3\lib\site-packages\plac_core.py”, line 207, in consume
return cmd, self.func(*(args + varargs + extraopts), **kwargs)
File “F:\Anaconda3\lib\site-packages\spacy\cli\download.py”, line 31, in download
shortcuts = get_json(about.shortcuts, “available shortcuts”)
File “F:\Anaconda3\lib\site-packages\spacy\cli\download.py”, line 54, in get_json
r = requests.get(url)
File “F:\Anaconda3\lib\site-packages\requests\api.py”, line 75, in get
return request(‘get’, url, params=params, **kwargs)
File “F:\Anaconda3\lib\site-packages\requests\api.py”, line 60, in request
return session.request(method=method, url=url, **kwargs)
File “F:\Anaconda3\lib\site-packages\requests\sessions.py”, line 533, in request
resp = self.send(prep, **send_kwargs)
File “F:\Anaconda3\lib\site-packages\requests\sessions.py”, line 646, in send
r = adapter.send(request, **kwargs)
File “F:\Anaconda3\lib\site-packages\requests\adapters.py”, line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=‘raw.githubusercontent.com’, port=443): Max retries exceeded with url: /explosion/spacy-models/master/shortcuts-v2.json (Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”))

问题分析

在stack overflow上发现有位朋友出现了和我类似的问题,原文链接: link
大致的原因是(理解如有不当,请点击原文链接,详见):
在编译Python的 SSL 库时,Anaconda自带的Python使用的是它自己的 SSL 库,和系统的 SSL 库不一致。归根结底是,版本问题导致的错误。

解决方法

较好的方法是(如有更好的方法,感谢告知),是用系统的Python版本,而不是Anaconda自带的Python。于是,我又重新安装了一个Python,并将新安装的Pyhton版本的路径添加到环境变量中。。
需要注意的是:
在添加新安装的Pyhton版本的路径时,要添加在Anaconda自带的Python的路径前面,否则,在cmd中默认运行的还是原来的Python版本。如图:
环境变量的设置
利用新版本的Python,输入如下命令重新安装spacy,即可成功

pip install -U spacy
python -m spacy download en
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值