先安裝一些依賴包,編譯python的時候需要用到
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
然后下載python安裝包
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
tar -zxvf Python-3.8.3.tgz
編譯python
#創建編譯安裝目錄,選個路徑建個檔案夾,后面編譯的python放在這里
mkdir /usr/local/python383
#下面這個cd是進入的剛剛下載解壓后的python安裝包檔案夾
#后面都是在安裝包路徑下執行
cd Python-3.8.3
./configure --prefix=/usr/local/python383
make && make install
安裝好之后還要修改一下軟鏈接,linux下的軟鏈接有點類似Windows的快捷方式
查看一下當前python的軟鏈接
/usr/bin里面存的東西,就相當于 exe的一個啟動程式,一般自己安裝東西不要放這里
可以看到,我這個機器/usr/bin/路徑下有一個檔案python2.7,系統安裝的,還有兩個軟鏈接
級聯的軟鏈接,也就是說此時執行python和python2都可以打開python2.7
我也可以在這個路徑下新建一個軟鏈接,比如python100,讓其鏈接到這里的python2.7檔案,或者鏈接到另外兩個軟鏈接,都可以(說這個主要就是理解一下軟鏈接是什么意思)

上面執行了一個操作,洗掉python軟鏈接,這樣的話,在終端執行python就打不開python2.7了,但是輸入python2還是可以的,因為python2這個軟鏈接還在呢
洗掉了之后,我們就可以將創建一個名為python的軟鏈接鏈接到剛剛安裝的python3.8了
下面進入到/usr/local/python383/bin/下面,這里有我們剛剛安裝的python3.8
可以看到真正的可執行檔案名叫python3.8,那個python3其實只是個快捷方式
然后就還在/usr/bin/路徑下(因為這個路徑相當于是Windows的環境變數,終端輸命令就可以直接調這里的檔案)新建一個軟鏈接,取名還為python
ln -s /usr/local/python383/bin/python3 /usr/bin/python
#當然這里也可以鏈接python3.8,反正都是級聯的鏈接
ln -s /usr/local/python383/bin/python3.8 /usr/bin/python
#后面的/usr/bin/python這個鏈接名是自己取的,也可以改成自己的名字
#比如/usr/bin/lzb,這樣的話,我直接輸lzb就可以進入python3.8
到這里的操作程序是,洗掉了python到python2.7的軟鏈接,新建了python到python3.8的鏈接
這樣會有個問題,就是再執行yum的時候報錯,因為yum命令依賴python2.7,python到python2.7的鏈接沒了,yum命令里就找不到python2.7了,所以報錯
我的操作是,還把python到python2.7的軟鏈接鏈接上,這樣yum還可以通過python找到python2.7
把python3.8鏈接的名字改成python3就行,后面自己用的時候就執行python3命令即可
下面同樣給剛剛安裝的python3.8的pip3.8也建一個軟鏈接,取名pip3

當然也可以選擇修改一下yum的組態檔,因為yum調python2.7不是通過“絕對路徑”(Windows里的概念),而是通過軟鏈接python,我們將yum調python2.7的軟鏈接改為python2.7(絕對路徑)或python2.7(這個也是軟鏈接,沒有洗掉)都行
vi /usr/bin/yum
把 #! /usr/bin/python 修改為 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改為 #! /usr/bin/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python 改為 #!/usr/bin/python2
最終對軟鏈接的操作就是新增了兩個而已

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345617.html
標籤:其他
