环境和背景介绍:
MacOS Catalina 10.15.3
Homebrew 安装了如下python版本
python 2.7.17
python 3.7.6_1
python 3.6.5_1
python3.6/3.7通过brew switch python 3.6.5_1
和brew switch python 3.7.6_1
切换。
问题描述:
在python3版本是 3.6.5的时候,pip3安装提示:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
我翻阅了至少30个帖子或者博文包括stackoverflow上面的很多类似帖子,没有一个解决了实际问题。后来想了一下,试试重新安装pip?然后wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
的时候提示:
yld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/bin/wget
Reason: image not found
然后为了解决这个问题搜到一篇文章:
MAC dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
里面提到一个方法:
brew switch openssl 1.0.2s
然后我终于恍然大悟,这才是症结所在啊~~~~~因为默认安装的是openssl1.1,死活找不到切换的方法,网上各种建立软连接的方式不好用。
brew switch openssl 1.0.2t
,就完美解决了前文所述的问题。我的版本是 1.0.2t
,你自己的版本可以通过如下方式看到:
ls /usr/local/Cellar/openssl/
如果没有,可以通过如下命令安装:
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
相关博文:
brew extract
从本地的tap安装旧版本的python。Note:值得一提的是
brew install
的--with-brewed-openssl
参数会被忽略。所以并不能解决本文的问题。
python 3.6.5
的方法:如果遇到443端口错误,把https改为http即可。
brew unlink python3
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
版本切换:
#查看现有版本
brew info python3
#切换版本(根据上面命令的结果给出的版本而定)
brew switch python 3.7.6_1
brew switch python 3.6.5_1