国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python報錯:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1

這篇具有很好參考價值的文章主要介紹了python報錯:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

python報錯:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+

問題分析
說明:requests包引入了urllib3,而新版本的urllib3 需要OpenSSL 1.1.1+以上版本,否則報錯:
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+,
currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips 26 Jan 2017’. See: https://github.com/urllib3/urllib3/issues/2168

三、解決方法
需要升級openssl

下載編譯openssl

1. 依賴包
安裝編譯 OpenSSL 所需的包,包括 gcc、make、perl 和 zlib-devel。可以通過運行以下命令完成:
yum install -y gcc make perl zlib-devel

2. 安裝包下載
下載 OpenSSL 1.1.1 的源碼包,可以從 OpenSSL 官網(wǎng)下載(https://www.openssl.org/source/openssl-1.1.1.tar.gz)或使用以下命令下載:
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
3. 解壓
解壓源碼包并進入解壓后的目錄:
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1  

4.初始化并編譯、安裝
運行以下命令編譯 OpenSSL:
./config   --prefix=/opt/openssl-1.1.1

make
make install

5. 添加環(huán)境變量
vim /etc/profile
 export PATH=/opt/openssl-1.1.1/bin:$PATH
 export LD_LIBRARY_PATH=/opt/openssl-1.1.1/lib:$LD_LIBRARY_PATH

source /etc/profile

這會在系統(tǒng)中安裝新的 OpenSSL 版本。可以通過運行以下命令檢查 OpenSSL 版本:
openssl version

如果輸出結(jié)果中的版本號為 1.1.1 或更高版本,則說明 OpenSSL 已成功升級。

6. 做軟連接
如果還是原來的版本,沒變成新版本,可以做軟連接使其掛用新版本  
將原來的openssl,做備份
mv /usr/bin/openssl     /usr/bin/openssl_20230525bak
mv /usr/lib64/openssl   /usr/lib64/openssl_20230525bak
然后將新安裝的OpenSSL做軟連接到這個路徑
ln  -s  /opt/openssl-1.1.1/bin/openssl   /usr/bin/openssl

再執(zhí)行以下命令檢查 OpenSSL 版本:
openssl version

完成!!



升級openssl之后,依舊import urllib3 報錯
如果你已經(jīng)確認系統(tǒng)中的OpenSSL顯示為新版本,但Python仍然使用舊版本,可能是因為Python解釋器沒有正確鏈接到新版本的OpenSSL。

思路1: 重新編譯python
重新編譯Python是一種解決Python解釋器沒有正確鏈接到新版本OpenSSL的方法之一。這可以確保Python使用新版本的OpenSSL庫。

配置編譯選項:打開命令行終端,切換到Python源代碼的目錄,并運行以下命令以配置編譯選項:

./configure --with-openssl=/path/to/openssl
–with-ssl:表示使用了系統(tǒng)中已安裝的 OpenSSL 庫。
–with-openssl:表示使用了自帶的 OpenSSL 庫。

將 /path/to/openssl 替換為新版本OpenSSL庫的安裝路徑。此選項告訴Python編譯器在編譯過程中使用新版本的OpenSSL。

編譯和安裝:在命令行終端中運行以下命令以編譯和安裝重新配置的Python:

make
make install


這將編譯Python源代碼并將其安裝到系統(tǒng)中。注意,在執(zhí)行sudo make install時,可能需要輸入管理員密碼。

驗證安裝結(jié)果:重新編譯和安裝完成后,你可以通過運行以下命令來驗證Python解釋器是否鏈接到了新版本的OpenSSL:

python -c "import ssl; print(ssl.OPENSSL_VERSION)"


使用 --with-openssl 親測可用!推薦~

思路2: 指定Python解釋器鏈接到新版本的OpenSSL,而不重新編譯Python
如果你已經(jīng)安裝了新版本的OpenSSL,并且希望指定Python解釋器鏈接到該新版本的OpenSSL,而不重新編譯Python,可以通過設(shè)置環(huán)境變量LD_LIBRARY_PATH(Linux)或DYLD_LIBRARY_PATH(macOS),將新版本的OpenSSL庫路徑添加到Python解釋器的運行環(huán)境中。

例如,假設(shè)新版本的OpenSSL庫位于 /usr/local/ssl/lib,你可以執(zhí)行以下操作:

export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH



在Python交互環(huán)境中,執(zhí)行以下代碼來查看Python中使用的OpenSSL庫的路徑:

import ssl
print(ssl.OPENSSL_VERSION)
print(ssl._ssl.__file__)


我這邊測試,無論怎么改LD_LIBRARY_PATH,一直引用的python安裝目錄下的: lib/python3.8/lib-dynload/_ssl.cpython-38-x86_64-linux-gnu.so
?文章來源地址http://www.zghlxwxcb.cn/news/detail-707893.html

到了這里,關(guān)于python報錯:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包