[Python]在CentOS 6安裝Python 3.7

前言

若想要安裝最新版本的Python,可以從官網下載原始碼自己編譯安裝

以下將會紀錄全部的安裝步驟

與 CentOS 7 不同的是,需要另外裝其他的套件才有辦法更新到Python 3.7

若是 CentOS 7 請看這一篇 [Python]在CentOS 7安裝Python 3.7

Step 1

安裝所需要的套件

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel wget xz xz-devel libuuid-devel gdbm-devel

Step 2

安裝LibreSSL

因為Python 3.7需要新的OpenSSL,否則會出現以下錯誤

Could not build the ssl module!
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().
LibreSSL 2.6.4 and earlier do not provide the necessary APIs, https://github.com/libressl-portable/portable/issues/381

下載官方原始碼

wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.9.2.tar.gz

解壓縮檔案並進入目錄

tar xzvf libressl-2.9.2.tar.gz

cd libressl-2.9.2

檢測並產生 Makefile,且指定安裝目錄

./config --prefix=/usr/local

編譯及安裝

make && make install

備份原始軟連結及建立新軟連結

mv /usr/bin/openssl /usr/bin/openssl.bak

mv /usr/include/openssl /usr/include/openssl.bak

ln -s /usr/local/bin/openssl /usr/bin/openssl

ln -s /usr/local/include/openssl /usr/include/openssl

將安裝目錄加入到系統加載目錄

echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf

ldconfig

增加系統參數

export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include"
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

測試

openssl version

若出現 LibreSSL 2.9.2 表示安裝成功

Step 3

下載官方原始碼

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz

Step 4

解壓縮檔案並進入目錄

tar Jxvf Python-3.7.3.tar.xz

cd Python-3.7.3

Step 5

檢測並產生 Makefile,且指定安裝目錄

./configure prefix=/usr/local/python3

Step 6

編譯及安裝

make && make install

Step 7

建立別名

vi .bashrc

加入以下文字後儲存檔案

alias python='/usr/local/python3/bin/python3'
alias pip='/usr/local/python3/bin/pip3'

重新讀取

source .bashrc

Step 8

確認 Python 版本

python -V

顯示 Python 3.7.3 就表示安裝成功