當前最新的 CentOS 7.5 預設安裝的是 Python 2.7.5,並且預設的官方 yum 源中不提供 Python 3 的安裝包。這裡主要介紹兩種在 CentOS 7 中安裝 Python 3 的方法。
使用 SCL 安裝
1. 啟用 SCL
SCL 是一個社群專案,它可以在同一系統上構建,安裝和使用多個版本的軟體,而不會影響系統預設軟體包。
yum -y install centos-release-scl
2. 安裝 Python
現在我們可以訪問SCL儲存庫,我們可以安裝我們需要的任何Python 3.x版本,目前最新版本為 Python 3.6。
yum -y install rh-python36
3. 修改環境變數
要訪問Python 3.6,需要使用 scl 工具為系統環境變數新增自定義路徑。
scl enable rh-python36 bash
4. 檢視安裝資訊
檢視 Python 環境路徑:
[root@localhost ~]# which python
/opt/rh/rh-python36/root/usr/bin/python
檢視 Python 當前版本:
[root@localhost ~]# python --version
Python 3.6.3
編譯原始碼安裝
1. 基本工具
- wget(網路下載工具)
- gcc(基於C/C++的編譯器)
- make(工程化編譯工具)
yum -y install wget gcc make
2. 安裝依賴
- bzip2-devel(解決 import bz2 報錯)
- ncurses-devel(解決 import curses 報錯)
- sqlite-devel(解決 import sqlite3 報錯)
- gdbm-devel(解決 _dbm _gdbm 缺失)
- xz-devel(解決 _lzma 缺失)
- tk-devel(解決 _tkinter 缺失)
- readline-devel(解決 readline 缺失)
- libffi-devel(解決 _ctypes 缺失)
yum -y install bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel libffi-devel
3. 編譯原始碼
下載原始碼包:
wget -c https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
解壓原始碼包:
tar -zxvf Python-3.7.0.tgz
進入解壓目錄:
[root@localhost ~]# cd Python-3.7.0
[root@localhost Python-3.7.0]#
配置安裝目錄:
./configure prefix=/usr/local/python3
編譯並安裝:
make && make install
4. 新增連結
在使用者環境變數目錄下,建立一個啟動程式的軟連結。
ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python
5. 檢視版本
[root@localhost ~]# python --version
Python 3.7.0
SLC 與編譯安裝各有優缺點。
SLC 方式安裝更簡單,不需要考慮依賴的問題。而且預設安裝在 /opt 目錄下(相當於 Windows 中 D:SoftWare),不影響系統環境,直接 rm -rf 也沒關係。侷限在於 SLC 只提供 python3.4 – python3.6 的版本,並且會修改 $PATH 的路徑。
編譯安裝則可以選擇任意 python 的版本(只要能下載的到),但是編譯與安裝過程中會遇到很多 No module named 錯誤。如果再將啟動程式軟連結新增到系統環境變數目錄(/usr/bin)下,依賴 python2 的 yum(#!/usr/bin/python)工具就不能使用了。