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 исчезла.