SSL错误下载NLTK数据

78

我想在Mac OS X 10.7.5上使用Python 3.6下载NLTK 3.0,但是出现了SSL错误:

import nltk
nltk.download()

输入图像描述

我使用pip3命令下载了NLTK: sudo pip3 install -U nltk

更改NLTK下载器中的索引可显示所有NLTK文件,但当您尝试全部下载时,会出现另一个SSL错误(请参见照片底部):

输入图像描述

我对计算机科学相对较新,并且在SSL方面一窍不通。

我的问题是如何简单地解决这个问题?


这是一个用户提出的类似问题:

无法下载nltk数据

由于我的编辑被拒绝,所以我决定发表一个带有截图的新问题。

以下是我没有找到有用的类似问题:

NLTK下载SSL:证书验证失败

使用nltk.download()下载错误

4个回答

129
您不需要禁用 SSL 检查,如果运行以下终端命令:
/Applications/Python 3.6/Install Certificates.command

如果你使用的是早期版本的Python,请将3.6替换为你的Python版本号。然后,你应该能够打开Python解释器(使用命令python3),并在那里成功运行nltk.download()

这是一个问题,其中urllib使用的是嵌入式版本的OpenSSL,不在系统证书存储中。 这里有一个答案,提供更多关于发生了什么的信息。


1
@Dany 我同意。我更新了我的答案。 - Simon O'Doherty
5
如何在Ubuntu上完成这个操作? - weima
2
由于某些原因,我在Mac上没有这个文件路径。如果有区别的话,我是通过Anaconda下载Python的。 - FortuneFaded
5
@FortuneFaded 尝试运行"/Applications/Python 3.6/Install Certificates.command"命令。请注意,该命令开头的sh和双引号很重要。我以为我的目录也不存在,但后来发现是空格让我误解了。 - K-Dawg
9
如果您要将其复制并粘贴到终端中,应该看起来像这样:/Applications/Python\ 3.6/Install\ Certificates.command。请注意,这是一段有关终端命令的指示,不包括任何解释或背景信息。 - shiri
显示剩余6条评论

97
请参考@doctorBroctor的回答,它更正确和更安全。下面的回答保留,因为它可能在其他方面有用。 https://dev59.com/7lgR5IYBdhLWcg3wbcv1#42890688
这将通过禁用SSL检查来工作。
import nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

nltk.download()

1
提醒一下,panlex_lite 很大,所以它可能会看起来像是冻结了。请检查您的控制台是否有任何错误。 - Simon O'Doherty
1
此外,它有一些小问题,如果失败了,请尝试单独下载剩余的软件包。或者从~/ntlk_data文件夹(zip+文件夹)中删除一个失败的软件包,然后重试。 - Simon O'Doherty
这个方法可行(除了你指出的panlex_lite有bug)!非常感谢。您能简要解释一下我为什么会出现错误以及您的代码是如何工作的吗?我猜它是绕过了某种防止我访问文件在GitHub位置的SSL安全措施? - DyingIsFun
这个解决方案对我来说很有效,使用homebrew(https://brew.sh)软件包管理器在macOS 10.13.1上。 - Gareth
两年后,这个答案仍然完美地运作。谢谢! - mackycheese21

27

在Finder中搜索Python 3.6,它将出现在应用程序文件夹下,展开Python 3.6文件夹,然后使用"Install Certificates.command"安装证书。

输入图像描述


2
太好了,如果你在使用MAC的话这会很有帮助! - Chandra Kanth

0

在Codestar中安装的唯一方法是手动下载模块并将它们保存到nltk_data文件夹中,创建一个Lambda变量环境NLTK_DATA,并将值设置为./nltk_data。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接