MacOS 13.3.1(a)下Python3.9运行Jupyter Notebook遇urllib3导入错误求助
解决urllib3 v2.0与LibreSSL 2.8.3的兼容问题
问题本质
系统全局的openssl是LibreSSL 3.3.6,但你当前使用的Python 3.9是系统默认版本,Python的ssl模块是编译时绑定的,编译时依赖的是旧版LibreSSL 2.8.3。因此即使系统更新了SSL库,Python依然会调用编译时的旧版本,导致urllib3 v2.0的版本检测不通过。
解决方案
方案1:降级urllib3到兼容版本
urllib3 v2.0对SSL库版本要求严格,直接降级到v1.x系列即可绕过该限制:
- 终端执行命令:
pip3 install urllib3==1.26.15 - 重启Jupyter Notebook后,再尝试执行
import openai
方案2:重新安装Python绑定新版SSL库
系统自带Python通常绑定旧版SSL库,通过Homebrew安装独立Python环境可彻底解决:
- 安装Homebrew(未安装时执行):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装Python 3.9:
brew install python@3.9 - 使用Homebrew的pip安装依赖:
pip3 install jupyterlab openai - 用Homebrew的Python启动Jupyter:
/usr/local/bin/jupyter-notebook(路径可根据Homebrew实际安装位置调整)
方案3:临时启用urllib3兼容模式(不推荐)
urllib3提供了兼容旧SSL库的选项,但可能存在安全风险:
- 先安装依赖:
pip3 install pyopenssl - 在代码开头添加:
import urllib3 urllib3.disable_warnings() urllib3.contrib.pyopenssl.inject_into_urllib3()
内容的提问来源于stack exchange,提问作者Hans
相关产品推荐
相关产品推荐

