OSX上的Python3证书问题


3

我和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医生,我得到以下内容:

警告:“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 /框架/ Python.framework /版本/ 3.6 /斌/ python3.6-配置

警告:您的酒窖中有未链接的桶。未链接的桶可能会导致构建问题,并导致依赖于这些桶的brews一旦构建就无法正常运行。运行brew link这些:python
berkeley-db


请阅读中的信息brew info python。如果您运行which -a python或者which -a python3您将看到存储二进制文件的位置,以及哪些选项优先。您可能需要相应地调整PATH。无论如何,你现在的Python 3.6.3来自哪里?
slhck

谢谢你的回答!我不知道命令brew info python!当我跑步时,which -a python3 我得到以下内容:/Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3 /usr/local/bin/python3
Tommaso Bendinelli

你有没有安装这个3.6版本?请运行brew doctor...它可能会告诉您如何处理Python 3.6。如果您不需要它,我建议卸载它并仅使用Homebrew Python。它可能需要完全删除该/Library/Frameworks/Python.framework/Versions/3.6/文件夹并重新安装Homebrew Python。
slhck

请参阅帖子中的编辑
Tommaso Bendinelli

Answers:


1

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

  • 一个通过官方安装程序安装到/Library/Frameworks/Python.framework/Versions/3.6//Applications/Python 3.6(3.6)
  • 一个通过Homebrew via 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,因此请确保您$PATH包含此目录,并python3在您想要Homebrew的Python时调用。

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


非常感谢你,只有一个问题。在删除官方安装程序文件夹之前是否还需要再次下载我正在使用的所有软件包?如果是这样,我该如何访问它们?
Tommaso Bendinelli

您需要重新安装它们pippip3 freeze > requirements.txt在卸载旧版本之前我会运行。这将为您提供可随时重新安装的格式的输出pip3 install -r requirements.txt。确保pip3 list实际输出的内容pip3正确指向旧安装。
slhck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.