Python NLTK下载SSL:证书验证失败

Python NLTK下载SSL:证书验证失败,python,ssl-certificate,nltk,Python,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 nltk.download('punkt') [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
nltk.download('punkt')
[nltk_数据]加载Punkt时出错:
假的

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

  • Windows:
    C:\nltk\U数据\tokenizers
  • OSX:
    /usr/local/share/nltk_data/tokenizers
  • Unix:
    /usr/share/nltk_data/tokenizers

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

如果您使用的是Linux(Ubuntu)

应该解决这个问题


如果在docker文件的脚本中使用此选项,则必须确保已在docker文件中安装ca证书模块。

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

import nltk
nltk.download()
从这里开始:

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

bash/Applications/Python 3.6/Install Certificates.command


从这里开始:

首先转到路径/Applications/Python 3.6/并运行 安装证书.命令

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

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

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

TLDR:这里有一个更好的解决方案:

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

为了补充已接受的答案,以下是将在Mac上搜索的目录的完整列表(不限于已接受答案中提到的目录):

-“/Users/YOUR_USERNAME/nltk_data”
-“/usr/share/nltk_data”
-“/usr/local/share/nltk_data”
-“/usr/lib/nltk_数据”
-“/usr/local/lib/nltk_data”
-“/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_目录/nltk_数据”
-“/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_目录/share/nltk_数据”
-“/Users/YOUR_USERNAME/YOUR_VIRTUAL_ENV_目录/lib/nltk_数据”

如果上面的链接失效,下面是完整粘贴的解决方案:

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

我的解决方案是:

  • 从下载punkt.zip并解压缩
  • 在主文件夹下创建nltk_数据/标记化器文件夹
  • 将punkt文件夹放在tokenizers文件夹下

我的解决方案没有任何效果。我通过GUI导航到Python3.7文件夹,在终端中打开了“Certificates.command”文件,SSL问题立即得到解决

这是通过禁用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()

对于最近(例如2019年)遇到此问题并使用MacOS的任何其他人,有一种非常简单的方法可以修复正式的错误报告中所述的所有问题。从以下位置的错误报告:

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


只需在MacOS上运行“Install Certificates.command”脚本(截至本文撰写之时为10.15 beta版),我就可以关机并运行了。

您只需通过这个简单的步骤安装证书

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


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

在finder中搜索“install Certificates.command”并将其打开

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

python3
导入nltk
nltk.download()

参加聚会有点晚,但我刚刚将Certificates.command输入到Spotlight中,Spotlight找到并运行了它。在几秒钟内全部修复


我运行的是mac Catalina,使用的是自制的python 3.7,工作起来就像gemYes,下载到我的用户目录路径,工作起来很有魅力。非常有用,因为我没有管理员权限。事实上,我在一个站在我身后的管理员的帮助下尝试了这个被接受的答案,但这对我来说并不奏效。这一个对我有效!不是第一个。我需要禁用SSL,正如你提到的!这比寻找每次OS-X更新都会丢失的命令更可靠。非常感谢,这很有魅力。我正在OSX 10.14.6(Mojave)上使用Python3.8.0,这是值得的。这么简单。祝福你!谢谢这在Mac Big Sur上运行。适用于Python 3.7.4和Mac OSX MojaveWorks on Big Sur:),使用刚刚发布的MacOS 10.15,无法找到“Install Certificates.command”文件。没有
/Applications/Python 3.x
目录。您使用的是哪个版本的Python?macOS 10.15上预装的
/usr/bin/Python 3
中的Python 3.7.3我也在使用Python 3,但没有预装。也许这就是区别。请尝试安装另一个版本,并查看目录是否存在,以便执行这些操作。或者是在以后的版本(3.6之后)中更改了目录,尽管我对此表示怀疑。当我回到我的Mac电脑时,我会核实的。谢谢。干得好!适用于macOS 10.13.6
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()