本篇 ShengYu 紀錄在 macOS 執行 python 跑 requests 遇到的 urllib3 v2 only supports OpenSSL 1.1.1 問題與解決方法,今日在新 macOS 中執行 python 跑 requests 遇到以下問題,1
2
3
4% ./main.py
/Users/shengyu/Library/Python/3.8/lib/python/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.co
m/urllib3/urllib3/issues/3020
warnings.warn(
看起來似乎是說我的Python環境中使用的ssl模組版本(LibreSSL 2.8.3)不被urllib3版本2.x支持。urllib3版本2要求OpenSSL 1.1.1或更高版本。
用 pip3 查看我安裝 urllib3 的版本是 2.2.11
2pip3 list | grep urllib3
urllib3 2.2.1
網路上查的結果有幾種方式,最後是採用降級安裝 urllib3 舊版本解決,這篇是說安裝 1.26.6 可以解決
降級 urllib3 版本
要降級 urllib3,你可以使用 pip 安裝指定的 urllib3 舊版本,1
pip3 install urllib3==1.26.15
安裝後查詢一下 urllib3 版本1
2% pip3 list | grep urllib3
urllib3 1.26.15
或者是安裝 urllib3 2.0 以下的最新版1
pip3 install 'urllib3<2.0'
使用 Python 虛擬環境來安裝 urllib3 舊版本
以下是如何建立虛擬環境並安裝相容版本的 urllib3:
1 | python -m venv myenv |
離開虛擬環境的話則是輸入1
deactivate
無論在哪個作業系統上,deactivate 指令都可以退出當前的虛擬環境,使你回傳到全域的 Python 環境。
以上就是 macOS 執行 python 跑 requests 遇到的 urllib3 v2 only supports OpenSSL 1.1.1 問題與解決方法,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!