macOS下NLTK下载语料库时certificate verify failed(_ssl.c:749)问题的原因及解决办法

1.问题

知道了有nltk这个东西,然后平平常常开始下载语料库

1
2
import nltk
nltk.download()

然后就跳出来一个并不正常的下载页面QwQ,报错[SSL:CERTIFICATE_VERIFY_FAILED]certificate verify failed(_ssl.c:749)

2.原因

查了一下会出现这个问题是SSL检查时报的错,大意是urllib用了一个嵌入式版本的OpenSSL,而这个版本不在系统证书里。

放上stackoverflow对于这个问题的讨论链接:https://stackoverflow.com/questions/41348621/ssl-error-downloading-nltk-data

3.根本原因

只有在macos下3.6/3.7版本的python上会出现这个错误,和之前遇到过的python下安装pyspider报错本质上是一个原因,就是python3.6开始不再使用苹果提供的OpenSSL库,然后就会导致下图的一系列说明,,(懒得翻译了,,看个大概)

这里也提到了解决办法,就是从第三方certifi安装证书包(a curated bundle of default root certificates)

关于这个问题更详细的官方说明可以见这个python issue:https://bugs.python.org/issue28150

4.解决方法

网上的一种解决方式是每次都加上禁用SSL检查的语句,但是还有一种更简单粗暴的方法,只要执行下面两句即可解决

1
2
cd /Applications/Python\ 3.6/
./Install\ Certificates.command

然后就可以快乐安装语料库了

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2020 LeFlacon

奶茶一杯 快乐起飞

支付宝
微信