Anaconda环境下用boto3访问S3遇SSL证书验证失败求助
解决Anaconda环境下boto3 SSL证书验证失败问题
针对你升级requests库后出现的CERTIFICATE_VERIFY_FAILED错误,以下是几个可行的解决办法:
1. 重新安装/更新Anaconda的certifi证书库
certifi是Python环境中管理SSL证书的核心库,升级requests可能破坏了它的关联:
- 激活base环境后执行:
conda install --force-reinstall certifi - 若无效,尝试更新到最新版:
conda update certifi
2. 手动指定证书路径给boto3
强制让boto3使用certifi提供的证书文件:
- 先获取certifi证书的路径,在Python交互环境中执行:
会输出类似import certifi print(certifi.where())/your/anaconda/path/envs/base/lib/python3.9/site-packages/certifi/cacert.pem的路径。 - 修改boto3初始化代码,添加
verify参数:
注:建议将import boto3 import certifi client = boto3.client('s3', verify=certifi.where()) response = client.get_object(Bucket='bucketname', Key='hai')Key='/hai'改为Key='hai',避免生成带双斜杠的请求路径
3. 通过环境变量全局指定证书
无需修改代码,直接在终端设置环境变量后运行脚本:
conda activate base export AWS_CA_BUNDLE=$(python -c "import certifi; print(certifi.where())") # 再运行你的Python脚本
如果需要永久生效,可以把export命令添加到你的shell配置文件(如~/.bashrc或~/.zshrc)中。
4. 降级requests到兼容版本
若升级requests是问题根源,可尝试降级到之前能正常运行的版本:
- 先查看当前安装的版本:
conda list requests - 降级到指定版本(示例为2.28.1,根据你之前的版本调整):
conda install requests=2.28.1
内容的提问来源于stack exchange,提问作者jebaseelan ravi
相关产品推荐
相关产品推荐

