在 CentOS 上升級 Python 3.6.8 到 3.8.0,可以按照以下步驟操作:
1. 安裝依賴
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel wget
- 如果遇到報錯“File "/bin/yum", line 30?
? except KeyboardInterrupt, e:?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^?
?SyntaxError: invalid syntax”
- 原因:因為你的系統默認 Python 版本已經被升級到 Python 3.x,而 CentOS 7/6 的 yum 依賴 Python 2.x。Python 3.x 不再支持 except Exception, e 這種語法,導致 yum 無法運行。
- 解決辦法:
- 不要覆蓋系統自帶的 python2 系統自帶的 /usr/bin/python 應該指向 Python 2.x,否則 yum、yum-config-manager 等工具會出錯。
- 恢復 /usr/bin/python 指向 python2.7 執行如下命令(需要 root 權限):
sudo ln -sf /usr/bin/python2.7 /usr/bin/python
2. 下載 Python 3.8.0 源碼
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
3. 解壓并編譯安裝
tar -zxvf Python-3.8.0.tgz
cd Python-3.8.0
./configure --enable-optimizations
make -j$(nproc)
sudo make altinstall
( altinstall 可以避免覆蓋系統自帶的 python)
4. 驗證安裝
python3.8 --version
5. (可選)設置 python3 指向 python3.8(不建議覆蓋系統自帶 python3)
sudo ln -sf /usr/local/bin/python3.8 /usr/bin/python3
6. 升級 pip
python3.8 -m pip install --upgrade pip
這樣你就可以在 CentOS 上使用 Python 3.8.0 了。
如需在虛擬環境中使用,創建虛擬環境時指定 python3.8 路徑即可:
python3.8 -m venv tutorial-env
如有特殊情況(如權限、依賴問題等),可以補充說明
?
檢查版本
如果有多個版本同時存在,可以創建軟連接
ln -sf /usr/local/bin/python3.8 /usr/local/bin/python3
ln -sf /usr/local/bin/python3.6.8 /usr/local/bin/python
?