NLTK下载SSL:证书验证失败

问题描述 投票:14回答:8

尝试为nltk安装Punkt时出现以下错误:

nltk.download('punkt')    
 [nltk_data] Error loading Punkt: <urlopen error [SSL:
 [nltk_data]     CERTIFICATE_VERIFY_FAILED] certificate verify failed
 [nltk_data]     (_ssl.c:590)>
False
ssl-certificate nltk
8个回答
9
投票

下载程序脚本已损坏。作为临时解决方法,可以从here手动下载punkt tokenizer,然后将解压缩的文件夹放在相应的位置。每个操作系统的默认文件夹是:

  • Windows:C:\nltk_data\tokenizers
  • OSX:/usr/local/share/nltk_data/tokenizers
  • Unix:/usr/share/nltk_data/tokenizers

21
投票

TLDR:这是一个更好的解决方案:https://github.com/gunthercox/ChatterBot/issues/930#issuecomment-322111087

请注意,当您运行nltk.download()时,会弹出一个窗口,让您选择要下载的软件包(下载不会立即自动启动)。

为了补充已接受的答案,以下是将在Mac上搜索的目录的完整列表(不限于在接受的答案中提到的目录): - '/Users/YOUR_USERNAME/nltk_data' - '/usr/share/nltk_data' - '/usr/local/share/nltk_data' - '/usr/lib/nltk_data' - '/usr/local/lib/nltk_data' - '/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_DIRECTORY/nltk_data' - '/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_DIRECTORY/share/nltk_data' - '/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_DIRECTORY/lib/nltk_data'

如果上面的链接死掉,这里是完整粘贴的解决方案:

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()

在您喜欢的Python IDE中或通过命令行运行上面的代码。


6
投票

运行Python解释器并键入命令:

import nltk
nltk.download()

从这里:http://www.nltk.org/data.html

如果出现SSL /证书错误,请运行以下命令

bash /Applications/Python 3.6/Install Certificates.command

从这里:ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)


1
投票

这意味着您没有使用HTTPS与Python等的其他运行时依赖项一致地工作。

如果您使用的是Linux(Ubuntu)

~$ sudo apt-get install ca-certificates

应该解决这个问题。

如果您在带有docker文件的脚本中使用它,则必须确保已在docker文件中安装ca-certificates模块。


1
投票

我的解决方案是:

  • here下载punkt.zip并解压缩
  • 在主文件夹下创建nltk_data / tokenizers文件夹
  • 将punkt文件夹放在tokenizers文件夹下

0
投票

首先转到路径/ Applications / Python 3.6 /并运行Install Certificates.command

您将获得相同的管理员权限。

如果您无法下载,那么其他答案建议您可以直接下载并放置它。您需要将它们放在以下目录结构中。

> nltk_data
          > corpora
                   > brown
                   > conll2000
                   > movie_reviews
                   > wordnet
          > taggers
                   > averaged_perceptron_tagger
          > tokenizers
                      > punkt

0
投票

无解之后我的解决方案。我通过GUI导航到Python 3.7文件夹,在终端中打开了“Certificates.command”文件,SSL问题立即得到解决。


0
投票

这可以通过禁用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()
© www.soinside.com 2019 - 2024. All rights reserved.