MacBook上Jupyter Server启动失败求助(SSL库缺失报错)
解决MacOS Catalina下Jupyter Notebook因OpenSSL依赖无法启动的问题
我之前也碰到过几乎一模一样的问题!这个报错本质是你之前安装的Python 3.7在编译时绑定了旧版OpenSSL(1.0.0),但长时间未使用电脑期间,Homebrew大概率自动把OpenSSL升级到了1.1或更高版本,导致Python找不到对应的动态链接库了。下面给你几个可行的解决办法,按推荐程度排序:
方案一:用pyenv管理Python版本(长期最优解)
pyenv能帮你彻底隔离不同版本的Python,避免系统或Homebrew的Python依赖冲突,以后再遇到类似版本问题也能轻松搞定:
- 先安装pyenv:
brew install pyenv - 配置环境变量(Catalina默认用zsh,所以编辑
~/.zshrc;如果用bash就编辑~/.bash_profile):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 - 重启终端,安装你需要的Python 3.7.3版本:
pyenv install 3.7.3 - 设置全局使用这个版本(或者在项目目录下用
pyenv local 3.7.3只针对当前项目生效):pyenv global 3.7.3 - 最后重新安装Jupyter:
pip install jupyter
方案二:重新安装Python 3.7,适配当前OpenSSL
如果不想用版本管理工具,直接重装Python 3.7也能解决问题——新安装的Python会自动适配当前系统的OpenSSL版本:
- 先卸载旧的Python 3.7:
brew uninstall python@3.7 - 重新安装Python 3.7:
brew install python@3.7 - 重新安装Jupyter:
pip3 install jupyter
方案三:手动建立旧版OpenSSL软链接(临时救急)
这个方法不用重装Python,但可能会和其他依赖新版本OpenSSL的程序产生冲突,适合临时快速解决问题:
- 先安装旧版OpenSSL 1.0:
brew install openssl@1.0 - 建立软链接到Python需要的路径:
sudo ln -s /usr/local/opt/openssl@1.0/lib/libssl.1.0.0.dylib /usr/local/lib/libssl.1.0.0.dylib sudo ln -s /usr/local/opt/openssl@1.0/lib/libcrypto.1.0.0.dylib /usr/local/lib/libcrypto.1.0.0.dylib - 之后再尝试启动Jupyter:
jupyter notebook
你可以根据自己的需求选方案,个人强烈推荐方案一,能从根本上避免后续的版本依赖坑。
内容的提问来源于stack exchange,提问作者arilwan
相关产品推荐
相关产品推荐

