NLTK下载SSL:证书验证失败

use*_*986 26 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
Run Code Online (Sandbox Code Playgroud)

fst*_*ang 40

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()
Run Code Online (Sandbox Code Playgroud)

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


小智 15

在finder中搜索“Install Certificates.command”并打开它。

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

    python3
    import nltk
    nltk.download()
Run Code Online (Sandbox Code Playgroud)


ely*_*ase 12

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

  • 视窗: C:\nltk_data\tokenizers
  • OSX: /usr/local/share/nltk_data/tokenizers
  • Unix的: /usr/share/nltk_data/tokenizers


小智 11

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

import nltk
nltk.download()
Run Code Online (Sandbox Code Playgroud)

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

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

bash /Applications/Python 3.6/Install Certificates.command

从这里:ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:749)

  • 与已接受的答案相比,我更喜欢这个解决方案,因为它涉及使 Python 的 SSL 检查真正起作用,而不是完全禁用 SSL 证书检查。风险可能较低,但接受的答案似乎会让您遭受 MITM 攻击。 (2认同)

小智 7

这可以通过禁用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()
Run Code Online (Sandbox Code Playgroud)


thi*_*o89 5

您只需要按照这个简单的步骤安装证书

在 python 应用程序文件夹中双击文件“Certificates.command”

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