Python安装spacy报错: Can't connect to HTTPS URL because the SSL module is not available - Go语言中文社区

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:Userszhaocy>python -m spacy download en
Traceback (most recent call last):
File “F:Anaconda3libsite-packagesurllib3
connectionpool.py”, line 589, in urlopen
conn = self._get_conn(timeout=pool_timeout)
File “F:Anaconda3libsite-packagesurllib3connectionpool.py”, line 251, in _get_conn
return conn or self._new_conn()
File “F:Anaconda3libsite-packagesurllib3connectionpool.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:Anaconda3libsite-packagesrequestsadapters.py”, line 449, in send
timeout=timeout
File “F:Anaconda3libsite-packagesurllib3connectionpool.py”, line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File “F:Anaconda3libsite-packagesurllib3utilretry.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:Anaconda3librunpy.py”, line 193, in _run_module_as_main
main”, mod_spec)
File “F:Anaconda3librunpy.py”, line 85, in run_code
exec(code, run_globals)
File "F:Anaconda3libsite-packagesspacy_main
.py”, line 31, in
plac.call(commands[command], sys.argv[1:])
File “F:Anaconda3libsite-packagesplac_core.py”, line 328, in call
cmd, result = parser.consume(arglist)
File “F:Anaconda3libsite-packagesplac_core.py”, line 207, in consume
return cmd, self.func(*(args + varargs + extraopts), **kwargs)
File “F:Anaconda3libsite-packagesspacyclidownload.py”, line 31, in download
shortcuts = get_json(about.shortcuts, “available shortcuts”)
File “F:Anaconda3libsite-packagesspacyclidownload.py”, line 54, in get_json
r = requests.get(url)
File “F:Anaconda3libsite-packagesrequestsapi.py”, line 75, in get
return request(‘get’, url, params=params, **kwargs)
File “F:Anaconda3libsite-packagesrequestsapi.py”, line 60, in request
return session.request(method=method, url=url, **kwargs)
File “F:Anaconda3libsite-packagesrequestssessions.py”, line 533, in request
resp = self.send(prep, **send_kwargs)
File “F:Anaconda3libsite-packagesrequestssessions.py”, line 646, in send
r = adapter.send(request, **kwargs)
File “F:Anaconda3libsite-packagesrequestsadapters.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
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zcyzhangzhou/article/details/86572845
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢