我安装python 3.6时使用的是brew install python3
并尝试从https下载six.moves.urllib.request.urlretrieve
的文件,但它抛出错误
ssl.SSLError:[SSL:证书验证失败]证书验证失败(_ssl.c:749)
在Python安装(从.pkg)中,自述文件指出需要在安装to之后运行Install Certificates.command
1.安装certifi
1.将证书路径符号链接到certify
路径
才能使用证书。
但是,在brew install中,此文件不存在,似乎也没有运行。
6条答案
按热度按时间dl5txlt91#
似乎由于某种原因,Brew没有运行Mac版Python3软件包中的
Install Certificates.command
。此问题的解决方案是在brew install python3
之后运行以下脚本(从Install Certificates.command
复制):lmvvr0a82#
我的Mac OS X解决方案:
1)使用从Python语言官方网站https://www.python.org/downloads/下载的原生应用程序Python安装程序升级到Python 3.6.5
我发现这个安装程序在更新新Python的链接和符号链接方面比自制的好得多。
2)使用更新后的Python 3.6目录中的.“/Install Certificates.command”安装新证书
安装证书命令”
n6lpvg4x3#
/应用程序Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/ssl/cert.pem
certifi
的ca文件'/usr/local/lib/python3.7/站点软件包/证书/认证证书.pem'
hc2pp10m4#
以下操作将暂时禁用SSL检查,
eoigrqb65#
如果你需要让你的本地根证书(例如
local_RootCA.crt
)成为python信任的证书,你可以把它添加到certifi/cacert.pem
文件的末尾:这个解决方案也适用于macos brew python 3的安装。
tzxcd3kk6#
将SSL_CERT_FILE环境变量定位到ca文件也可以工作,并且它不是侵入性的。