Centos 7 編譯安裝python 3.8
文章目錄
一、下載前準備工作
Centos 7操作系統上默認安裝了python 2.7.5版本,但是python 2即將成爲歷史,python 3纔是未來的主流,本文記錄了筆者在Centos 7上安裝python 3.8的過程,該過程在虛擬機和華爲雲服務器上均有實現,因此復現性應該較高。
首先移動到/home/python目錄下(當然沒有python目錄需要你自己創建):
二、下載python 3.8壓縮包
使用如下命令下載python 3.8:
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
如果提示-bash: wget: 未找到命令,需要先使用yum安裝wget,命令如下:
yum -y install wget
然後再使用wget下載python,耐心等候。下載結果如下:
三、解壓縮安裝包
通過以下命令解壓縮下載的文件:
tar zxf Python-3.8.0.tgz
結果如下:
解壓後進入Python-3.8.0目錄:
cd Python-3.8.0
四、安裝前準備工作
因爲編譯 Python 源代碼需要依賴於很多工具,所以得先準備一下,依次執行以下命令:
yum update -y
yum groupinstall -y 'Development Tools'
yum install -y gcc openssl-devel bzip2-devel libffi-devel
五、安裝python 3.8
現在我們就可以安裝python 3.8了,首先執行以下命令(注意,一定要在Python-3.8.0目錄下執行該命令):
./configure prefix=/usr/local/python3 --enable-optimizations
–prefix選項是配置安裝的路徑,如果不配置該選項,安裝後可執行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc,其它的資源文件放在/usr/local/share,比較凌亂。
如果配置--prefix
,如:./configure --prefix=/usr/local/python3
可以把所有資源文件放在 /usr/local/python3 的路徑中,不會雜亂.用了--prefix
選項的另一個好處是卸載軟件或移植軟件。當某個安裝的軟件不再需要時,只須簡單的刪除該安裝目錄,就可以把軟件卸載得乾乾淨淨;移植軟件只需拷貝整個目錄到另外一個相同的操作系統機器即可.當然要卸載程序,也可以在原來的make 目錄下用一次make uninstall
,但前提是make文件指定過uninstall.
--enable-optimizations
是優化選項(LTO,PGO 等)加上這個 flag 編譯後,性能有 10% 左右的優化,但是這會明顯的增加編譯時間,老久了.
./configure
命令執行完畢之後創建一個文件 Makefile, 供下面的make
命令使用,執行make install
之後就會把程序安裝到我們指定的文件夾中去。
make && make install
那麼現在就安裝好python 3了嗎?很遺憾,答案是沒有。因爲系統默認使用的還是python 2。
六、修改 python 2 鏈接
我們首先查看一下 Python 可執行文件的位置:
which python
然後切換到相應的目錄:
cd /usr/bin
查看相關的python信息:
ls -la python*
發現當我們執行python 命令時,系統指向python 2,然後python 2指向python 2.7,所以系統默認使用的python版本仍然是python 2。
首先將python 改名爲 python.bak
mv python python2.bak
再次查看python相關信息:
七、修改yum配置文件
進入目錄/usr/bin
,查看有關yum的文件:
ls -la yum*
使用vi 進入文本編輯器(如果有多個yum配置文件,都要進去修改):
vi yum
點擊i進入編輯模式之後將#!/usr/bin/python 改爲#!/usr/bin/python2,按ESC退出編輯模式,輸入:wq!
保存修改退出。
同樣進入文件 /usr/libexec/urlgrabber-ext-down 做同樣修改。
八、配置python 3軟鏈接
進入/usr/bin目錄,配置軟鏈接。在我看來,其實軟鏈接就像Windows操作系統裏的快捷方式,比如現在桌面上有一個圖標叫python,現在你雙擊打開它,發現它打開的是Python 2,所以我們要配置其指向python 3。
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python
配置後結果:
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip
如果提示/usr/bin/pip已經存在,可以使用rm
刪除,然後再進行配置。
配置後結果:
當然,也可以配置一個pip3軟鏈接。
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
九、結果
輸入python --version和pip -V,結果如下:
華爲雲服務器:
本地虛擬機:
十、後記
如果遇到下載python 3安裝包速度過慢,可以考慮先下載到本地,然後使用winscp等工具將安裝包傳輸至Centos,然後開始安裝。
在安裝過程中,要記得拍攝快照,最好每一步結束後都拍攝一張快照,這樣當哪一步出錯時,可以回退到前一步驟,而不必重新安裝。
其實整個安裝步驟和Windows下安裝軟件一樣,大致按照下載軟件——安裝軟件——修改配置整個過程進行,由於Centos系統自帶python 2,中間穿插了一些修改python 2配置信息的操作。
十一、參考資料
[1] 知乎作者-穆圖: https://zhuanlan.zhihu.com/p/98299867
[2] https://liqiang.io/post/install-python3-8-in-centos-973bdb81
[3] CSDN用戶- weixin_41917873: https://blog.csdn.net/weixin_41917873/article/details/88211421
[4] CSDN用戶-那一夜: https://blog.csdn.net/weixin_44247225/article/details/85246828
[5] 簡書作者-徐代龍: https://www.jianshu.com/p/fe9b0fc127d4