SSL错误下载NLTK数据


74

我正在尝试下载NLTK 3.0以在Mac OS X 10.7.5上与Python 3.6一起使用,但是却遇到SSL错误:

import nltk
nltk.download()

在此处输入图片说明

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

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

在此处输入图片说明

我对计算机科学比较陌生,对SSL一点也不了解。

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


这是一个存在相同问题的用户的类似问题:

无法下载nltk数据

我决定发布一个带有屏幕截图的新问题,因为对其他问题的编辑被拒绝了。

我认为没有帮助的类似问题:

NLTK下载SSL:证书验证失败

使用nltk.download()下载错误

Answers:


124

如果运行以下终端命令,则无需禁用SSL检查:

/Applications/Python 3.6/Install Certificates.command

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

这是一个问题,其中urllib使用了不在系统证书存储中的OpenSSL嵌入式版本。这是答案,其中包含正在发生的事情的更多信息。


1
奇迹般有效。注意:nltk.download()此步骤后仍需要运行。
AsyncMoksha

4
ubuntu怎么做?
weima

2
由于某种原因,我没有此文件路径(mac)。我通过Anaconda下载了python,如果有什么不同的话。
FortuneFad17年

5
@FortuneFaded尝试sh“ / Applications / Python 3.6 / Install Certificates.command”-开头的sh和引号很重要。我以为我也没有目录,但事实证明那是让我失望的空格。
Prime By Design

9
...,如果您要复制并粘贴到Terminal中,则最终应看起来像这样:/Applications/Python\ 3.6/Install\ Certificates.command
shiri

87

请参阅@doctorBroctor的回答。使用起来更正确,更安全。在下面留下答案,因为它可能对其他方面有用。

https://stackoverflow.com/a/42890688/1167890


这将通过禁用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除外,它是越野车)!无限感谢。您能否简要解释为什么我会收到错误以及您的代码在做什么?我猜它绕过某种SSL安全性,这阻止了我访问文件的GitHub位置?
GrimGrom

此解决方案在macOS 10.13.1上使用自制软件(brew.sh)软件包管理器为我工作
Gareth

2年后,此答案仍然有效。谢谢!!
mackycheese19年


0

若要仅在codestar中安装,请手动下载模块并将其保存到nltk_data文件夹中,并使用valie ./nltk_data创建一个lambda变量环境NLTK_DATA。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.