有个项目需要用到 Python 的 requests 库,但是在请求的时候报错了
requests.exceptions.SSLError: HTTPSConnectionPool(host='www.baidu.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)')))
及其恶心
解决
一个是安装 certifi
包
pip install certifi
然后 MacOS 下的解决方法是,运行那个命令行文件
/Applications/Python\ 3.7/Install\ Certificates.command
但是可能还是没有效果,可以用下面的代码解决,添加到代码里面
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
测试代码
python3 -c 'import urllib.request; import ssl; ssl._create_default_https_context = ssl._create_unverified_context; print(urllib.request.urlopen("https://localhost:9200").status)'