M1 Mac Ventura 13.1下用Pyenv装Python遇openssl未找到错误的解决方法
解决M1 Mac Ventura 13.1下pyenv安装Python时的OpenSSL/Readline错误
核心原因
系统自带的LibreSSL无法满足Python编译需求,必须安装官方OpenSSL;同时缺失GNU Readline依赖,导致readline模块编译失败。
具体解决步骤
- 安装依赖组件:用Homebrew安装官方OpenSSL和GNU Readline
brew install openssl readline - 配置环境变量,让pyenv编译时定位到依赖:
打开你的shell配置文件(比如~/.zshrc或~/.bash_profile),添加以下内容:
保存后刷新配置:export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib" export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix readline)/include" export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig"source ~/.zshrc # zsh用户执行这个 # 或 source ~/.bash_profile # bash用户执行这个 - 清理失败安装并重新编译Python:
先卸载之前安装失败的版本(以3.10.6为例):
重新安装Python,利用已配置的环境变量:pyenv uninstall -f 3.10.6
若仍有问题,直接指定OpenSSL路径强制编译:pyenv install 3.10.6env PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl)" pyenv install 3.10.6 - 验证安装结果:
切换到新安装的Python版本,验证ssl和readline模块:
能正常输出OpenSSL版本和readline提示,即说明问题解决。pyenv global 3.10.6 python -c "import ssl; print(ssl.OPENSSL_VERSION)" python -c "import readline; print('readline模块正常')"
额外注意事项
- 先更新Homebrew到最新版本:
brew update && brew upgrade - 检查shell配置文件中是否有冲突的环境变量,避免干扰依赖定位
- M1 Mac的Homebrew默认路径为
/opt/homebrew,若你的brew路径不同,需替换为对应路径
内容的提问来源于stack exchange,提问作者Divyesh Parmar
相关产品推荐
相关产品推荐

