OSX 上 Python3 的证书问题

OSX 上 Python3 的证书问题

我和多个 OSX 用户一样遇到了相同的 Python 问题,该问题在我尝试通过 https 访问任何内容时出现。

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

我知道以下解决方案(接受的回应): https://stackoverflow.com/questions/42098126/mac-osx-python-ssl-sslerror-ssl-certificate-verify-failed-certificate-verify

但不幸的是,如果我没有这样的文件夹:

/Applications/Python 3.6/ReadMe.rtf

因此我不知道该怎么做。特别是当我安装了 python3 时,我通过使用

brew install python3

我也尝试过提高命令

brew upgrade python3 

但它并没有改变任何东西。更奇怪的是,根据 brew,我现在安装了 python 3.7.2.1,如果我再次尝试升级,它会返回以下错误:

Tommasos-MBP:~ tommaso$ brew upgrade python3
Error: python3 3.7.2_1 already installed

但如果我检查我的电脑的 python3 版本,我就会得到这个。

Tommasos-MBP:~ tommaso$ python3 --version
Python 3.6.3

我应该如何进行,为什么 brew 认为我已经安装了 3.7,而 Python 仍然是 3.6?

编辑如果我运行 Brew doctor 我会得到以下结果:

警告:“config”脚本存在于您的系统或 Homebrew 目录之外。./configure脚本通常会查找 *-config 脚本来确定软件包是否已安装,以及在编译和链接时使用哪些附加标志。

如果配置脚本覆盖了系统或 Homebrew 提供的同名脚本,则路径中的其他脚本可能会使通过 Homebrew 安装的软件产生混淆。我们发现了以下“配置”脚本:
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6m-config /Library/Frameworks/Python.framework/Versions/3.6/bin/python3-config
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6-config

警告:您的酒窖中有未链接的酒桶。未链接的酒桶可能会导致酿造问题,并导致依赖于这些酒桶的啤酒在酿造后无法正常运行。运行brew link这些:python
berkeley-db

答案1

你正在运行 Python 3 的多个版本:

  • 一个通过官方安装程序安装,进入/Library/Frameworks/Python.framework/Versions/3.6//Applications/Python 3.6(3.6)
  • 一个通过 Homebrew brew install python(3.7)

这些可能会发生冲突。无论如何,你只需要其中一个。我建议卸载第一个,只使用 Homebrew Python。这样你至少可以确定潜在的 Python 问题来自哪里。

要执行卸载,您必须删除这两个文件夹,然后重新加载 shell。您可能还必须删除仍然指向此 Python 版本的符号链接,您可以使用以下命令找到它:

ls -l /usr/local/bin | grep 'Python.framework/Versions/3.6' 

然后,运行brew reinstall python

请注意,您的新 Python 3.7 版本(通过 Homebrew)将存在于中/usr/local/bin/python3,因此请确保您的包含此目录,并且在您需要 Homebrew 的 Python 时$PATH调用它。python3

您也可以选择使用python3.7 版本。在这种情况下,请阅读 中有关“未版本化的符号链接”的说明brew info python

答案2

就我而言,我通过运行以下 Python 脚本来修复此错误马尔舒因

这是我所知道的最好的解决方案:D

祝你今天过得愉快 !

相关内容