1.需要先安裝python3依賴的包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
2.安裝python-3.6.8
2.1 獲取python-3.6.8
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
2.2 解壓&進入目錄
tar -xvJf Python-3.6.8.tar.xz
cd Python-3.6.8
2.3 添加ssl庫,如果不需要ssl庫,可以選擇跳過,后續需要用到的時候,再回來修改setup文件重新編譯安裝也是可以的,我是需要用到ssl來發郵件,所以在這里直接安裝了。
關於ssl庫,這里有個地方需要注意的,如果系統沒有安裝ssl模塊,或者不清楚是否有安裝的,則要在安裝的時候,需要同時編譯安裝ssl模塊,否則后續如果無法使用該模塊,比如 在使用smtplib SMTP_SSL發送郵件的時候,會出現 "smtplib" object has no attribute 'SMTP_SSL'的錯誤
同時編譯安裝ssl,修改一下Modules/Setup.dist,大概在210行左右
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
#_ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/lib -lssl -lcrypto
將ssl的下面4個注釋去掉,修改后的結果為:
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
2.4 編譯&安裝
./configure prefix=/usr/local/python3
make && make install
3.創建Python3到系統執行目錄 /usr/bin
/usr/bin目錄下有個python的執行文件,ls看一下發現它是指向系統默認安裝的python2
[root@VM_0_15_centos ~]# ls -an /usr/bin/python
lrwxrwxrwx 1 0 0 7 Mar 19 2018 /usr/bin/python -> python2
如果想要保留Python2,不要覆蓋它,如果不想保留,直接覆蓋就好,因為yum需要用到python2,本人保留python還是指向Python2,創建一個新的軟鏈指向python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
到此Python3就安裝完成了,使用python3 -V就可以查看python3版本了,運行python腳本的時候,使用python3 xxx.py就可以執行python3的腳本了,而使用Python xxx.py就還是使用Python2來運行腳本。