How to solve ImportError: cannot import name 'ssl' on Python 3

How to solve ImportError: cannot import name 'ssl' on Python 3

我在 MAC OS Catalina V10.15.5 上使用 pyenv 和 Python 3.6.0。我已经用 brew 更新了 openssl 到最新版本 (openssl@1.1):

brew install openssl

但现在我在 Python 虚拟环境中遇到以下错误,例如在使用 Boto3 时:

from urllib3.util.ssl_ import ( ImportError: cannot import name 'ssl'

我如何link 将我的 pyenv 环境恢复为 SSL?

我最近遇到了同样的问题。解决方案是强制重新安装您在虚拟环境中使用的 Python 版本。

例如 Python 3.6.0:

pyenv install -f 3.6.0

输出:

python-build: use openssl from homebrew
python-build: use readline from homebrew
Installing Python-3.6.0...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.6.0 to /Users/andrew/.pyenv/versions/3.6.0

如您在输出中所见:"python-build: use openssl from homebrew" 它将 link Python 到Homebrew 定义的当前 openssl 版本。