Mac OSX python ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED] 证书验证失败(_ssl.c:749)

2025-02-21 08:50:00
admin
原创
58
摘要:问题描述:Python 中的许多操作都需要通过 https 访问。这包括pip install命令,或仅使用http.client.HTTPSConnection,或任何在内部使用这些内容的模块或应用程序。如果 python 是从官方 python pkg 安装程序(从https://python.org下载...

问题描述:

Python 中的许多操作都需要通过 https 访问。这包括pip install命令,或仅使用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,我尝试通过两种方式使事情变得更加明显。第一,安装程序包现在将尝试打开包含“Install Certifications.command”的 /Application/Python 3.7 文件夹的 Finder 窗口。第二,安装结束时不再只是出现通用的“安装完成”消息,而是出现定制消息,敦促用户单击“Install Certifications.command”图标。...

解决方案 2:

我使用以下命令解决了这个问题:

open /Applications/Python 3.7/Install Certificates.command

我的机器上有 Python 3.7。

解决方案 3:

解决所有 Python 版本问题的好方法,无需检查 macOS 上的版本

bash /Applications/Python*/Install Certificates.command

该命令等效于:

...
bash /Applications/Python 2.7/Install Certificates.command
bash /Applications/Python 3.6/Install Certificates.command
bash /Applications/Python 3.7/Install Certificates.command
...

它帮助了我,希望它也能帮助你

解决方案 4:

如果 pip 无法解决问题

pip3 install --upgrade certifi

如果找不到“ Install Certifications.command ” ,请尝试以下脚本

#!/usr/bin/env python3
# install_certifi.py
#
# sample script to install or update a set of default Root Certificates
# for the ssl module.  Uses the certificates provided by the certifi package:
#       https://pypi.python.org/pypi/certifi

import os
import os.path
import ssl
import stat
import subprocess
import sys

STAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
             | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP
             | stat.S_IROTH |                stat.S_IXOTH )


def main():
    openssl_dir, openssl_cafile = os.path.split(
        ssl.get_default_verify_paths().openssl_cafile)

    # +++> if already done  <----
    #print(" -- pip install --upgrade certifi")
    #subprocess.check_call([sys.executable,
    #    "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"])

    import certifi
    # change working directory to the default SSL directory
    os.chdir(openssl_dir)
    relpath_to_certifi_cafile = os.path.relpath(certifi.where())
    print(" -- removing any existing file or link")
    try:
        os.remove(openssl_cafile)
    except FileNotFoundError:
        pass
    print(" -- creating symlink to certifi certificate bundle")
    os.symlink(relpath_to_certifi_cafile, openssl_cafile)
    print(" -- setting permissions")
    os.chmod(openssl_cafile, STAT_0o775)
    print(" -- update complete")

if __name__ == '__main__':
    main()

解决方案 5:

如果您使用的是 MacOS,请转到应用程序 >> python3.8 >> 并双击 Install Certifications.command。这对我有用。

解决方案 6:

export SSL_CERT_FILE=$(python -m certifi)

效果很好。请确保您已事先安装了 certifi。

解决方案 7:

就我而言,所有解​​决方案都不适用于在 macOS Catalina 中安装了 python3 的系统,也不适用于通过 brew 安装的 python3。

如果有人遇到这种情况并希望快速解决,请使用https://www.python.org/downloads/

再次下载并安装 python3

安装结束时,安装程​​序会显示一条提示,要求您运行该Install Certificates.command文件。

(在其他安装中,此文件不存在,并且文件源代码的解决方案也不起作用)

重新启动终端,然后输入where python3,即可看到/Library/Frameworks/Python.framework/Versions/3.8/bin/python3。使用此二进制文件,问题应该不会发生。

注意:可能可以使系统安装的 python3 工作,但是就我而言,这被证明非常困难,所以我选择了这种方式。

解决方案 8:

当我尝试使用 Keras 数据加载运行 Python 时,我遇到了同样的问题。对我来说错误是:

Exception: URL fetch failure on AWS_URL: None -- [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)

我通过升级证书解决了我的问题:

pip install --upgrade certifi

解决方案 9:

确认您不在虚拟环境中。我尝试了上述操作但没有成功,后来才意识到我的安装失败是因为我处于虚拟环境中

解决方案 10:

我这样做了,它在我的 Mac 上运行良好:Macintoch HD>应用程序>Python 文件>安装证书.command(双击它)

解决方案 11:

解决这个问题的一个便宜的方法就是使用 python3.5(如果您还安装了它)。

推送至 PyPI:

python3.5 setup.py register -r pypitest

python3.5 setup.py sdist upload -r pypitest

pipping 似乎与 3.6 开箱即用,运行良好。

解决方案 12:

确保你没有SSL_CERT_FILE设置环境变量。我遇到了同样的问题,花了一段时间才弄清楚一些应用程序在我的 bash 配置文件中将此变量设置为空字符串。

解决方案 13:

我在使用 macOS Big Sur 时遇到了同样的问题。以下是我解决问题的方法。

IDE——Pycharm

下载的 Python 版本 - 3.9.6

  • 下载最新的python版本并删除早期版本

  • 安装时,在最后(摘要部分),有一个小提示,要求安装 SSL 证书。请仔细阅读摘要部分。

  • 双击摘要中提供的 SSL 证书路径

  • 它将带您进入相应的文件夹,其中应该有一个名为“安装证书命令”的文件

  • 双击该文件,它将打开终端并自动运行代码。等到您收到“[已成功完成]”消息。

  • 完成后,关闭并重新启动终端/IDE,这应该可以解决您的问题。

注意:如果您的系统上同时安装了 anaconda 和 python,请检查您在 IDE 中使用的是否是正确的 python 版本,该 IDE 是下载的最新版本,而不是从 Anaconda 下载的版本。

享受。

解决方案 14:

由于公司 SSL 网关,我需要将我的公司 CA 证书添加到 python CA 证书文件中。

CA 证书文件的位置可以通过以下方式找到

import ssl
print(ssl.get_default_verify_paths().openssl_cafile)

要添加的证书在钥匙串中。导出后,需要将其转换为 PEM 格式,以便可以将其剪切并粘贴到 cacert 文件中 -

openssl x509 -inform der -in cert.cer -out cert.pem

解决方案 15:

对我来说,这是请求的错误指定。我打了https电话而不是http打电话。改用 http 解决了这个问题。

解决方案 16:

有时如果您使用 conda 或 poetry,您可能处于虚拟环境 shell 中。您可以使用以下命令进行检查:

which python

对我来说,解决方案很简单,cmd+t只需打开一个新 shell 即可。

解决方案 17:

如果您使用的是 macOS,请打开 finder 并转到应用程序>Python3.7 文件夹(或您正在使用的任何版本的 Python)> 双击“Install Certifications.command”文件。

解决方案 18:

只需在 Mac 上重新安装 Python

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2079  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1459  
  建筑行业正处于数字化转型的关键时期,建筑产品生命周期管理(PLM)系统的实施对于提升项目效率、质量和协同性至关重要。特别是在 2025 年,基于建筑信息模型(BIM)的项目进度优化工具成为众多建筑企业关注的焦点。这些工具不仅能够整合项目全生命周期的数据,还能通过精准的分析和模拟,为项目进度管理提供强大支持。BIM 与建...
plm是什么软件   0  
  PLM系统开发的重要性与现状PLM(产品生命周期管理)系统在现代企业的产品研发、生产与管理过程中扮演着至关重要的角色。它贯穿产品从概念设计到退役的整个生命周期,整合了产品数据、流程以及人员等多方面的资源,极大地提高了企业的协同效率和创新能力。通过PLM系统,企业能够实现产品信息的集中管理与共享,不同部门之间可以实时获取...
国产plm软件   0  
  PLM(产品生命周期管理)系统在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和技术的飞速发展,企业对PLM系统的迭代周期优化需求日益迫切。2025年敏捷认证对项目管理提出了新的要求,其中燃尽图作为一种强大的可视化工具,在PLM系统迭代周期优化中有着广泛且重要的应用。深入探讨这些应用,对于提升企业的项...
plm系统主要干什么的   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用