4ae*_*1e1 10 python macos macos-catalina
/usr/bin/python3来自 macOS 10.15 上的 Xcode/CLT(目前为 DB6/PB5,使用 Xcode 11 beta 6)SSL: CERTIFICATE_VERIFY_FAILED对于源自 PSL 的所有 HTTPS 请求失败,例如来自urllib.request:
$ /usr/bin/python3 -c 'import urllib.request; urllib.request.urlopen("https://www.apple.com/")'
...
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)>
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题呢?
(我知道答案,很快就会发布;只是分享它以防其他人遇到它。)
bhe*_*inz 27
作为@4ae1e1 答案的补充,您可以创建指向 SSL 文件夹的符号链接,而不是对其进行 rsync。这将带来额外的好处,/etc/ssl即在/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/ssl/.
/usr/bin/sudo /bin/mkdir /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc
/usr/bin/sudo /bin/ln -s /etc/ssl/ /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/
Run Code Online (Sandbox Code Playgroud)
应该做。
4ae*_*1e1 11
问题是/usr/bin/python3(来自 Xcode 或 CLT)无法正确定位 中的信任存储/etc/ssl,正如我们所看到的ssl.get_default_verify_paths():
$ /usr/bin/python3 -c 'import ssl; print(ssl.get_default_verify_paths())'
DefaultVerifyPaths(cafile=None, capath=None, openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/ssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/ssl/certs')
Run Code Online (Sandbox Code Playgroud)
它正在调查/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/ssl,它不存在。
知道了这一点,我们可以使用以下技巧:
$ sudo rsync -avzP /etc/ssl/ /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/etc/ssl/
Run Code Online (Sandbox Code Playgroud)
我已经向 Apple 提交了一个错误报告(顺便说一句,刚刚意识到 bugreport.apple.com 现在已经消失了,我不得不使用反馈助手网站)。打开雷达https://openradar.appspot.com/7111585(不幸的是,那个雷达号是错误的——因为 bugreport.apple.com 没有了,我没有雷达号了,只有一个反馈号FB7111585)。
| 归档时间: |
|
| 查看次数: |
5651 次 |
| 最近记录: |