Mac本地运行Streamlit应用遇SSL证书错误求助
解决Mac上Streamlit调用Yahoo Finance及pip安装的SSL证书验证失败问题
核心问题原因
你遇到的SSLCertVerificationError是因为Python环境无法验证Yahoo Finance的SSL证书,通常是Python的证书存储未同步系统根证书,或者存在代理/自签名证书干扰。
分步解决方案
1. 更新Python的SSL证书
根据你的Python安装方式选择对应操作:
- 系统自带Python:找到Applications文件夹中对应Python版本的目录(比如
Python 3.10),双击运行Install Certificates.command脚本,这个脚本会自动更新Python的证书存储。 - Homebrew安装的Python:在终端执行:
brew reinstall python - pyenv管理的Python:卸载并重新安装对应版本的Python:
pyenv uninstall 3.10.12 # 替换成你的Python版本 pyenv install 3.10.12
2. 强制Python使用系统根证书
如果证书更新后仍无效,设置环境变量让Python读取系统默认证书:
- 临时生效(仅当前终端会话):
export SSL_CERT_FILE=/etc/ssl/cert.pem - 永久生效(重启终端后仍有效):
编辑你的shell配置文件(~/.zshrc或~/.bash_profile,取决于你用的shell),添加上述export命令,然后执行:source ~/.zshrc # 对应.zshrc的情况 # 或 source ~/.bash_profile 对应bash的情况
3. 排查代理/VPN干扰
如果你正在使用代理或VPN,这类工具可能会插入自签名证书导致验证失败:
- 先关闭代理/VPN,重新运行
streamlit run myapp.py测试。 - 若必须使用代理,打开钥匙串访问应用,找到代理生成的自签名证书,右键点击「显示简介」,在「信任」选项卡中设置「使用此证书时」为「始终信任」。
4. 临时禁用SSL验证(不推荐,仅紧急情况使用)
上述方法都无效时,可临时关闭SSL验证解决当前阻塞,但这会带来安全风险,仅用于临时调试:
export PYTHONHTTPSVERIFY=0 streamlit run myapp.py
调试完成后请立即取消该环境变量(关闭终端或执行unset PYTHONHTTPSVERIFY)。
内容的提问来源于stack exchange,提问作者pv12345
相关产品推荐
相关产品推荐

