【问题标题】:SSL error downloading NLTK dataSSL 下载 NLTK 数据时出错
【发布时间】:2017-05-11 22:39:35
【问题描述】:

我正在尝试下载 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 一点也不了解。

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


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

Unable to download nltk data

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

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

NLTK download SSL: Certificate verify failed

downloading error using nltk.download()

【问题讨论】:

    标签: python macos ssl ssl-certificate nltk


    【解决方案1】:

    请参阅@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()
    

    【讨论】:

    • 请注意,panlex_lite 相当大,因此它可能会显示为冻结状态。检查您的控制台是否有任何错误。
    • 还有一点bug,如果失败了,尝试单独下载剩余的包。或者从 ~/ntlk_data 文件夹(zip+ 文件夹)中删除失败的文件夹并重试。
    • 这行得通(panlex_lite 除外,正如您所指出的,它有问题)!无限感谢。您能否简要说明我收到错误的原因以及您的代码在做什么?我猜它绕过了某种阻止我访问文件的 GitHub 位置的 SSL 安全性?
    • 这个解决方案在 macOS 10.13.1 上使用自制 (brew.sh) 包管理器对我有用
    • 2 年后,这个答案仍然可以正常工作。谢谢!!
    【解决方案2】:

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

    /Applications/Python 3.6/Install Certificates.command
    

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

    这是一个问题,其中urllib 使用不在系统证书存储中的嵌入式 OpenSSL 版本。 Here's an answer 提供有关正在发生的事情的更多信息。

    【讨论】:

    • 就像一个魅力。注意:在这一步之后仍然需要运行nltk.download()
    • 如何为 ubuntu 做到这一点?
    • 由于某种原因我没有这个文件路径(mac)。我通过 Anaconda 下载了 python,如果这有什么不同的话。
    • @FortuneFaded try sh "/Applications/Python 3.6/Install Certificates.command" - 开头的 sh 和引号很重要。我以为我也没有目录,但事实证明这是让我失望的空间。
    • ... 如果您要复制并粘贴到终端,最终应该是这样的:/Applications/Python\ 3.6/Install\ Certificates.command
    【解决方案3】:

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

    【讨论】:

    • 如果您使用的是 MAC,这对您有帮助!
    【解决方案4】:

    要在 codestar 中安装,唯一的方法是手动下载模块并将它们保存到 nltk_data 文件夹中,使用 valie ./nltk_data 创建一个 lambda 变量环境 NLTK_DATA。

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 2018-01-01
      • 1970-01-01
      • 2018-08-05
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      相关资源
      最近更新 更多