我和多个 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
您也可以选择使用python
3.7 版本。在这种情况下,请阅读 中有关“未版本化的符号链接”的说明brew info python
。