NLTK下载SSL:证书验证失败

时间:2016-08-12 11:04:23

标签: ssl-certificate nltk

尝试为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

13 个答案:

答案 0 :(得分:18)

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中或通过命令行运行上述代码。

答案 1 :(得分:8)

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

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

答案 2 :(得分: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)

答案 3 :(得分:2)

有一种非常简单的方法可以解决最近(例如2019年)使用MacOS遇到此问题的任何人的正式bug报告中编写的所有问题。来自https://bugs.python.org/issue28150的错误报告:

  

......有一个简单的双击可运行或命令行运行的脚本(“ / Applications / Python 3.6 / Install Certificates.command”),该脚本有两件事:1.使用pip安装certifi和2.创建OpenSSL目录中的符号链接到certifi的已安装包位置。

仅在MacOS(在撰写本文时为10.15 beta)上运行“ Install Certificates.command”脚本就对我有用,并且我已经关闭并正在运行。

答案 4 :(得分:2)

只需执行以下简单步骤即可安装证书

在python应用程序文件夹中,双击文件'Certificates.command'

这将在屏幕上显示一个提示窗口,基本上会自动为您安装证书,关闭此窗口,然后重试。

答案 5 :(得分:1)

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

如果您使用的是Linux(Ubuntu)

~$ sudo apt-get install ca-certificates

应该解决问题。

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

答案 6 :(得分:1)

我的解决方法是:

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

答案 7 :(得分:1)

这就是我为 MAC OS 解决的方法。 最初安装 nltk 后,我收到 SSL 错误。

解决办法: 转到

to

运行命令

cd /Applications/Python\ 3.8

现在如果你再试一次,它应该可以工作!

非常感谢 this 篇文章!

答案 8 :(得分:0)

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

您将拥有相同的管理员权限。

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

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

答案 9 :(得分:0)

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

答案 10 :(得分: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()

答案 11 :(得分:0)

在查找器中搜索“安装Certificates.command”并打开它。

然后在终端中执行以下步骤:

Configuration

答案 12 :(得分:0)

聚会晚了一点,但是我只是在Spotlight中输入了Certificates.command并找到并运行了它。全部固定在几秒钟内。

我正在运行Mac Catalina,并使用Homebrew安装的python 3.7