NLTK загрузить SSL: сбой проверки сертификата

Я получаю следующую ошибку при попытке установить Punkt для nltk:

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

17 ответов

Решение

Скрипт загрузчика не работает. В качестве временного решения проблемы можно вручную загрузить токенайзер punkt отсюда, а затем поместить разархивированную папку в соответствующее место. Папки по умолчанию для каждой ОС:

  • Окна: C:\nltk_data\tokenizers
  • OSX: /usr/local/share/nltk_data/tokenizers
  • Unix: /usr/share/nltk_data/tokenizers

TLDR: вот лучшее решение: https://github.com/gunthercox/ChatterBot/issues/930

Обратите внимание, что при запуске 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 или через командную строку.

Это работает путем отключения проверки 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()

Запустите интерпретатор 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] проверка сертификата не удалась (_ssl.c:749)

Найдите "Install Certificates.command" в поисковике и откройте его.

Затем выполните следующие действия в терминале:

    python3
    import nltk
    nltk.download()

Вот как я решил это для MAC OS. Первоначально после установки nltk я получал ошибку SSL.

Решение:Goto

      cd /Applications/Python\ 3.8

Запустите команду

      ./Install\ Certificates.command

Теперь, если вы попробуете еще раз, все должно работать!

Большое спасибо за эту статью!

Вам просто нужно установить сертификат, выполнив этот простой шаг.

В папке приложения python дважды щелкните файл Certificates.command.

это приведет к тому, что на вашем экране отобразится окно с подсказкой, и в основном автоматически установит сертификат для вас, закройте это окно и повторите попытку.

Мое решение:

  • Загрузите punkt.zip здесь и распакуйте
  • Создайте папки nltk_data/tokenizers в домашней папке
  • Поместите папку punkt в папку токенизаторов

Для пользователей Mac просто скопируйте и вставьте в терминал следующее:

      /Applications/Python\ 3.10/Install\ Certificates.command ; exit;

Существует очень простой способ исправить все это, как написано в официальном отчете об ошибке для всех, кто недавно столкнулся с этой проблемой (например, в 2019 году) и использует MacOS. Из отчета об ошибке на https://bugs.python.org/issue28150:

... есть простой сценарий, запускаемый двойным щелчком или запускаемый из командной строки ("/Applications/Python 3.6/Install Certificates.command"), который выполняет две функции: 1. использует pip для установки certifi и 2. создает символическую ссылку в каталог OpenSSL, чтобы сертифицировать расположение установленного пакета.

Просто запустить сценарий "Install Certificates.command" у меня сработал на MacOS (бета 10.15 на момент написания), и я был выключен и работал.

Мое решение после ничего не сработало. Я переместился через графический интерфейс к папке Python 3.7, открыл файл "Certificates.command" в терминале, и проблема с SSL была немедленно решена.

Немного опоздал на вечеринку, но я просто ввел Certificates.command в Spotlight, который нашел и запустил. Все фиксируется за секунды.

Я запускаю Mac Catalina и использую python 3.7, установленный Homebrew

Это означает, что вы не используете HTTPS для согласованной работы с другими зависимостями времени выполнения для Python и т. Д.

Если вы используете Linux (Ubuntu)

~$ sudo apt-get install ca-certificates

Должен решить вопрос.

Если вы используете это в сценарии с файлом Docker, вы должны убедиться, что вы установили модули CA-Certificates в свой файл Docker.

Сначала перейдите по пути /Applications/Python 3.6/ и запустите Install Certificates.command

Вы будете прав администратора для того же.

Если вы не можете скачать его, то, как и другие ответы, вы можете загрузить его прямо и разместить. Вам необходимо поместить их в следующую структуру каталогов.

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

Обновление сертификатов python сработало для меня.

В верхней части вашего скрипта сохраните:

      import nltk
nltk.download('punkt')

В отдельном терминале (Mac):

      bash /Applications/Python <version>/Install Certificates.command

Для Mac: найдите Install Certificates.command в поисковике и откройте его.

После успешного завершения просто начните загрузку.

      import nltk
nltk.download('wordnet')

Для меня решение было намного проще: я все еще был подключен к своей корпоративной сети/VPN, которая блокирует определенные типы загрузок. При переключении сети ошибка SSL исчезла.

Другие вопросы по тегам