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)文章
python實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別
這篇文章主要介紹了python如何實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
Pytorch創(chuàng)建隨機(jī)值張量的過程詳解
這篇文章主要介紹了Pytorch創(chuàng)建隨機(jī)值張量的過程詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Ubuntu下創(chuàng)建虛擬獨(dú)立的Python環(huán)境全過程
virtualenv可以搭建虛擬且獨(dú)立的python環(huán)境,可以使每個(gè)項(xiàng)目環(huán)境與其他項(xiàng)目獨(dú)立開來,保持環(huán)境的干凈,解決包沖突問題。本篇文章講述如何在Linux以及Ubuntu中創(chuàng)建Python虛擬環(huán)境,以及Virtualenvwrapper的安裝使用,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
Python中列表乘法和列表推導(dǎo)式的區(qū)別舉例詳解
在Python中列表是一種非常靈活和強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),支持多種運(yùn)算和操作,這篇文章主要介紹了Python中列表乘法和列表推導(dǎo)式區(qū)別的相關(guān)資料,文中通過代碼就介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
Python實(shí)現(xiàn)Excel表內(nèi)關(guān)鍵字查修改刪
在日常辦公和數(shù)據(jù)處理中,Excel作為最常用的表格工具,承載著海量業(yè)務(wù)數(shù)據(jù),但對(duì)于有些場(chǎng)景也會(huì)力不從心,本文將使用Python開發(fā)一個(gè)Excel表內(nèi)關(guān)鍵字查修改刪工具,需要的可以參考下2025-04-04
python實(shí)現(xiàn)簡(jiǎn)單飛機(jī)大戰(zhàn)小游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單飛機(jī)大戰(zhàn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Python爬蟲基礎(chǔ)之selenium庫的用法總結(jié)
今天帶大家來學(xué)習(xí)selenium庫的使用方法及相關(guān)知識(shí)總結(jié),文中非常詳細(xì)的介紹了selenium庫,對(duì)正在學(xué)習(xí)python的小伙伴很有幫助,需要的朋友可以參考下2021-05-05

