You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS Catalina 10.15.7下pyenv安装Python出现SSL证书验证错误

配置问题排查

核心问题1:shell环境变量被覆盖

你当前.bashrc中LDFLAGS、CPPFLAGS参数采用重复赋值的写法,后定义的变量会直接覆盖之前的配置,最终生效的只有最后一行bison的库路径,openssl、readline等依赖的编译参数全部失效,导致Python编译时无法关联正确的SSL库。

核心问题2:pyenv初始化顺序错误

现有配置中先执行pyenv virtualenv-init,后定义PYENV_ROOT,且缺少pyenv init调用,不符合pyenv的初始化要求,会导致pyenv的环境参数加载异常。

核心问题3:根证书路径未配置

pyenv编译的Python默认不会自动读取brew安装的ca-certificates根证书集合,也不会直接调用Mac系统钥匙串中的证书,导致SSL验证时找不到信任的根证书。

修复步骤
  • 修正.bashrc配置,替换原有PATH、Exports、pyenv部分的内容:
# PATH 去重合并
export PATH="$(brew --prefix sqlite)/bin:\
$(brew --prefix openssl@1.1)/bin:\
$(brew --prefix bison)/bin:\
$HOME/Library/Android/sdk/platform-tools:\
$HOME/.pyenv/bin:\
$PATH"

# 合并所有编译参数,避免覆盖
export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/sqlite/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/bison/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/readline/include -I/usr/local/opt/sqlite/include -I/usr/local/opt/zlib/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig:/usr/local/opt/sqlite/lib/pkgconfig"

# 配置全局根证书路径
export SSL_CERT_FILE="$(brew --prefix ca-certificates)/share/ca-certificates/cacert.pem"

# pyenv配置 顺序不可调整
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

如果日常使用zsh,需要同步修改~/.zshrc的对应配置。

  • 重载shell配置:执行source ~/.bashrc(zsh执行source ~/.zshrc)
  • 卸载所有pyenv已安装的Python版本:
pyenv uninstall -f 3.8.12 3.9.8 3.10.0
  • 带openssl参数重新编译安装所有Python版本:
PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl@1.1)" pyenv install 3.8.12
PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl@1.1)" pyenv install 3.9.8
PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl@1.1)" pyenv install 3.10.0
  • 执行pyenv rehash刷新pyenv缓存。
验证方法

切换到对应Python版本后执行以下命令,返回200即说明SSL功能正常:

python -c "import urllib.request; print(urllib.request.urlopen('https://www.baidu.com').getcode())"

内容的提问来源于stack exchange,提问作者element6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:54:04