Mac OSX python ssl.SSLError: подтверждение сертификата SSL: CERTIFICATE_VERIFY_FAILED] (_ssl.c: 749)
Многие операции в python требуют доступа к вещам через https. Это включает в себя настройку pip или просто использование http.client.HTTPSConnection или любых модулей или приложений, которые используют эти вещи внутренне.
Если python был установлен из официального установщика python pkg, загруженного из https://python.org, тогда он использует внутреннюю версию openssl и содержит нет корневых сертификатов. Все, что использует SSL-соединение, приводит к этой ошибке:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
Как я могу установить корневые сертификаты, чтобы убрать вышеуказанную ошибку?
Ответы
Ответ 1
Когда вы запускаете установщик python, они отображают эту информацию для вас. Это также задокументировано в /Applications/Python 3.6/ReadMe.rtf
, но его очень легко не заметить.
Просто перейдите к Applications/Python 3.6
и дважды щелкните Install Certificates.command
В системе отслеживания ошибок Python есть проблема.
http://bugs.python.org/issue29480
Обновление: Эта проблема помечена как исправленная в системе отслеживания ошибок, причем этот комментарий является последним:
Для 3.7.0b2 я попытался сделать вещи более очевидными двумя способами. Во-первых, установочный пакет теперь попытается открыть окно Finder для папки /Application/Python 3.7, в которой содержится "Install Certificates.command". Второе, а не просто общее сообщение "установка завершена" в конце установки, теперь есть специальное сообщение, призывающее пользователя щелкнуть значок "Install Certificates.command".
Ответ 2
Я решил эту проблему с помощью этой команды:
open /Applications/Python\ 3.7/Install\ Certificates.command
У меня есть Python 3.7 на моей машине.
Проверьте эту ссылку - Исправление ошибки CERTIFICATE_VERIFY_FAILED при попытке запроса html на Mac
Ответ 3
Дешевый способ обойти это - просто использовать python3.5, если он все еще установлен.
Нажатие на PyPI:
python3.5 setup.py register -r pypitest
python3.5 setup.py sdist upload -r pypitest
pipping, похоже, отлично работает с 3.6 из коробки.
Ответ 4
Я столкнулся с той же проблемой, когда пытался запустить Python с загрузкой данных Keras. Ошибка для меня была:
Exception: URL fetch failure on AWS_URL: None -- [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)
Я исправил свою проблему, обновив сертификат следующим образом:
pip install --upgrade certifi
Ответ 5
В моем случае ни одно из решений не работало с системой, установленной на python3 в macOS Catalina, и не работало с python3, установленным через brew.
Если кто-то сталкивается с такой ситуацией и хочет быстро найти решение,
Загрузите и снова установите python3, используя https://www.python.org/downloads/
В конце установки установщик покажет вам записку с просьбой запустить файл Install Certificates.command
.
(Придругих установках этот файл отсутствовал, и решение с исходным кодом файла не работало)
Перезапустите терминал, и вы можете набрать where python3
, чтобы увидеть /Library/Frameworks/Python.framework/Versions/3.8/bin/python3
. При использовании этого двоичного файла проблема не должна возникать.
Примечание: может быть возможно заставить работать установленный в системе python3, но в моем случае; это оказалось чрезвычайно трудно, поэтому я выбрал этот путь.
Ответ 6
Если вы используете macOS, откройте окно поиска и перейдите в папку "Приложения"> "Python3.7" (или любую другую версию python, которую вы используете)> дважды щелкните файл "Install Certificates.command".