CentOS 7.9 安裝 Python 3.10 詳細(xì)步驟及常見錯(cuò)誤解決方案
一、環(huán)境準(zhǔn)備與依賴安裝
1.更新系統(tǒng)與開發(fā)工具
sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel \ readline-devel tk-devel libffi-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel
作用:安裝編譯 Python 所需的依賴庫。若缺少依賴可能導(dǎo)致 _ctypes、_ssl 等模塊編譯失敗
2.檢查 OpenSSL 版本
openssl version
若版本低于 1.1.1,需手動(dòng)升級(jí)(Python 3.10 要求 OpenSSL ≥1.1.1):
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar -zxvf openssl-1.1.1k.tar.gz && cd openssl-1.1.1k ./config --prefix=/usr/local/openssl shared zlib make && sudo make install # 配置系統(tǒng)使用新版本 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf ldconfig -v ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
注意:升級(jí)后需驗(yàn)證 openssl version 是否顯示新版本。
二、編譯安裝 Python 3.10
下載源碼并解壓
wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz tar -zxvf Python-3.10.12.tgz && cd Python-3.10.12
配置編譯參數(shù)
./configure --prefix=/usr/local/python3.10 \ --enable-optimizations \ --with-openssl=/usr/local/openssl \ --with-ssl-default-suites=openssl
關(guān)鍵參數(shù)說明:
--with-openssl:指定自定義 OpenSSL 路徑(避免SSL module缺失)。--enable-optimizations:優(yōu)化編譯性能,若編譯失敗可去掉此參數(shù)。
編譯與安裝
make -j $(nproc) && sudo make altinstall
使用 altinstall 而非 install:避免覆蓋系統(tǒng)默認(rèn) Python 2.7。
驗(yàn)證安裝
/usr/local/python3.10/bin/python3.10 --version # 應(yīng)輸出 Python 3.10.x /usr/local/python3.10/bin/python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)" # 驗(yàn)證 SSL 模塊
三、環(huán)境配置
設(shè)置全局軟鏈接
sudo ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3 sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip3
配置環(huán)境變量
echo 'export PATH=$PATH:/usr/local/python3.10/bin' >> /etc/profile source /etc/profile
修復(fù) yum 工具沖突 修改 /usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 文件,將 #!/usr/bin/python 改為 #!/usr/bin/python2,以解決因 Python 3 導(dǎo)致 yum 失效的問題。
四、常見錯(cuò)誤及解決方法
zipimport.ZipImportError: can't decompress data; zlib not available 原因:缺少 zlib-devel 庫。 解決:
sudo yum install -y zlib-devel # 重新編譯 Python
ModuleNotFoundError: No module named '_ctypes' 原因:未安裝 libffi-devel。 解決:
sudo yum install -y libffi-devel # 重新編譯 Python
SSL module is not available 或 pip 證書驗(yàn)證失敗 原因:Python 未正確鏈接 OpenSSL。 解決:
確認(rèn)編譯時(shí)指定 --with-openssl 路徑。
- 若仍報(bào)錯(cuò),手動(dòng)修改
Modules/Setup文件,添加以下內(nèi)容后重新編譯:
SSL=/usr/local/openssl _ssl _ssl.c -DUSE_SSL -I$(SSL)/include -L$(SSL)/lib -lssl -lcrypto
動(dòng)態(tài)庫缺失(如 libssl.so.1.1) 解決:
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 ldconfig -v
make altinstall 后無 pip3 原因:altinstall 不會(huì)自動(dòng)創(chuàng)建 pip 軟鏈接。 解決:手動(dòng)創(chuàng)建軟鏈接或通過 python3 -m ensurepip 安裝。
五、優(yōu)化配置
配置國內(nèi) pip 源
mkdir -p ~/.pip && cat > ~/.pip/pip.conf << EOF [global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com EOF
更新 pip 與 setuptools
pip3 install --upgrade pip setuptools
總結(jié):CentOS 7.9 安裝 Python 3.10 的核心在于 OpenSSL 升級(jí)和依賴完整性檢查。若遇到編譯錯(cuò)誤,優(yōu)先檢查依賴庫是否齊全,并通過環(huán)境變量和編譯參數(shù)確保 Python 正確鏈接所需組件。
到此這篇關(guān)于CentOS 7.9 安裝 Python 3.10 詳細(xì)步驟及常見問題解決的文章就介紹到這了,更多相關(guān)CentOS 7.9 安裝 Python 3.10 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換
這篇文章主要介紹了Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
python自動(dòng)化測(cè)試之異常及日志操作實(shí)例分析
這篇文章主要介紹了python自動(dòng)化測(cè)試之異常及日志操作,結(jié)合實(shí)例形式分析了python自動(dòng)化測(cè)試中的異常捕獲與日志記錄相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
Python 出現(xiàn)錯(cuò)誤TypeError: ‘NoneType’ object is not iterable解決辦法
這篇文章主要介紹了Python 出現(xiàn)錯(cuò)誤TypeError: ‘NoneType’ object is not iterable解決辦法的相關(guān)資料,需要的朋友可以參考下2017-01-01
Python 類與元類的深度挖掘 II【經(jīng)驗(yàn)】
元類在 Python 中屬于比較深層的黑魔法,在一般的日常應(yīng)用中可能并不常用,但理解其背后的原理對(duì)于理解 Python 面向?qū)ο缶幊桃约耙磺薪詾閷?duì)象的理念很有幫助;如果你需要對(duì)類進(jìn)行深度改造,至少要知道從何入手。2016-05-05
python實(shí)現(xiàn)超時(shí)退出的三種方式總結(jié)
這篇文章主要介紹了python實(shí)現(xiàn)超時(shí)退出的三種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
python實(shí)現(xiàn)在目錄中查找指定文件的方法
這篇文章主要介紹了python實(shí)現(xiàn)在目錄中查找指定文件的方法,通過模糊查找與精確查找兩個(gè)實(shí)例較為詳細(xì)的闡述了文件查找的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11
Python?tkinter中l(wèi)abel控件動(dòng)態(tài)改變值問題
這篇文章主要介紹了Python?tkinter中l(wèi)abel控件動(dòng)態(tài)改變值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Python實(shí)現(xiàn)給PDF添加水印的方法
這篇文章主要介紹了Python實(shí)現(xiàn)給PDF添加水印的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

