Подтвердить что ты не робот

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)

Как я могу установить корневые сертификаты, чтобы убрать вышеуказанную ошибку?

4b9b3361

Ответ 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".

Ответ 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".