LibreSSL已安装但无法调用,urllib3兼容问题求助
解决LibreSSL版本不兼容urllib3及命令无法运行问题
问题梳理
- 通过Homebrew安装LibreSSL后,
brew list能查到软件,但执行libressl version无输出 - PyCharm中运行Selenium时触发urllib3警告:当前
ssl模块编译自LibreSSL 2.8.3,而urllib3 v2仅支持OpenSSL 1.1.1+ - 已尝试将
/usr/local/opt/libressl/bin加入~/.bashrc的PATH,但未生效;后续发现/usr/local/bin存在LibreSSL相关文件,但命令仍无法运行
修复步骤
1. 确保PATH配置对当前Shell生效
如果你的默认Shell是zsh(macOS Catalina及以后系统默认),修改~/.bashrc不会生效,需配置对应Shell的配置文件:
# 针对zsh的配置 echo 'export PATH="/usr/local/opt/libressl/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
配置后验证PATH是否生效:
echo $PATH | grep libressl
若输出包含/usr/local/opt/libressl/bin,说明PATH已生效,此时再执行libressl version即可看到版本信息。
2. 让Python使用兼容的SSL库
urllib3的警告本质是Python当前依赖的SSL库版本过低,可通过重新安装Python并绑定Homebrew提供的高版本SSL库解决:
- 先安装pyenv(用于管理多版本Python):
brew install pyenv
- 将pyenv配置到Shell(以zsh为例):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc
- 安装Homebrew版OpenSSL(替代低版本LibreSSL):
brew install openssl
- 安装指定版本Python,编译时绑定OpenSSL路径:
PYTHON_CONFIGURE_OPTS="--with-openssl=$(brew --prefix openssl)" pyenv install 3.11.x
- 设置该Python版本为全局或项目局部版本:
# 全局生效 pyenv global 3.11.x # 仅当前项目生效 pyenv local 3.11.x
- 在PyCharm中配置该解释器:打开
File > Settings > Project: [你的项目名] > Python Interpreter,添加新解释器并选择pyenv安装的Python版本。
3. 降级urllib3作为临时方案
如果暂时不想重新安装Python,可降级urllib3到支持LibreSSL 2.8.3的版本:
pip install urllib3==1.26.x
内容的提问来源于stack exchange,提问作者Hakan ÖZKALE
相关产品推荐
相关产品推荐

