Centos下升級(jí)python版本及避坑指南

1. 首先要檢查云服務(wù)器里都有啥

# python -V \\查看一下python版本,一般都是2.7.X的版本
# pip -V \\查看一下pip版本,一般出現(xiàn)"-bash: pip: command not found"就是沒(méi)安裝pip
# yum \\查看一下yum能不能工作,一般出現(xiàn)"Loaded plugins: fastestmirror, langpacks..."就是正常

2.修改python軟鏈接指向

一般情況下python默認(rèn)指向python2.7那個(gè)版本,所以提前修改軟鏈接指向,然后再修改yum的配置文件,經(jīng)個(gè)人實(shí)測(cè),這樣的順序,yum失靈的概率比較小。

# mv /usr/bin/python /usr/bin/python_old

這行代碼的意思是:
1.把python軟鏈接更名為python_old
2.這時(shí)候輸入python會(huì)沒(méi)有指向,而輸入python_old會(huì)指向python2.7
3.因?yàn)檐涙溄痈牧?,這時(shí)候yum會(huì)失靈

3.修改yum配置——他好起來(lái)了!

修改/usr/bin/yum和/usr/libexec/urlgrabber-ext-down,將 #!/usr/bin/python 改為 #!/usr/bin/python2.7,保存退出即可。

# vim /usr/bin/yum
# vim /usr/libexec/urlgrabber-ext-down

vim編輯器操作備忘
1、按下鍵盤上的“i”按鍵開(kāi)始編輯
2、編輯結(jié)束后,依次按下“Esc”——輸入“:”——輸入“wq”,就保存并退出了

此時(shí)yum應(yīng)該是可以正常使用了,至此,準(zhǔn)備工作算是做完了。


4. 安裝Python3依賴環(huán)境

Python3在安裝的過(guò)程中可能會(huì)用到各種依賴庫(kù),所以在正式安裝Python3之前,需要將這些依賴庫(kù)先行安裝好。

# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* make -y

5. 下載Python3源代碼

通過(guò)wget直接下載,如以下命令:

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

下載慢可以先去設(shè)置一下加速下載http://www.itdecent.cn/p/0b8d8afa8889

6. 創(chuàng)建安裝目錄

安裝目錄可依個(gè)人喜好創(chuàng)建,比如在此創(chuàng)建在 /usr/local/python3 :

mkdir -p /usr/local/python3

7. 解壓源碼包

將第5步下載到的源碼包進(jìn)行解壓,根據(jù)壓縮包格式不同命令為:

# tar -xvf Python-3.8.0.tar.xz \\如果下載的是tar.xz格式的壓縮包,用這個(gè)命令解壓
# tar -zxvf Python-3.8.0.tgz \\如果下載的是tgz格式的壓縮包,用這個(gè)命令解壓

8. 編譯源碼

先進(jìn)入解壓后源碼包的目錄,再進(jìn)行配置:

# cd Python-3.8.0 \\進(jìn)入python3.8的目錄下
# ./configure --prefix=/usr/local/python3 \\配置目錄,最前面的點(diǎn)別丟了
# make && make install \\再編譯,然后再安裝

9. 建立Python3的軟鏈接

# ln -s /usr/local/python3/bin/python3 /usr/bin/python \\讓python默認(rèn)指向python3版本,中間的空格不是手誤,不要遺忘掉

10. 將/usr/local/python3/bin加入PATH

編輯bash_profile進(jìn)行修改環(huán)境變量:

# vim ~/.bash_profile

在PATH變量下將Python3的啟動(dòng)目錄添加進(jìn)去(忘了vim操作的,返回第3步查看):

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/python3/bin 
export PATH

11. 檢查Python是否正??捎?/strong>

執(zhí)行如下命令(注意:V是大寫(xiě)的V),如果看到的結(jié)果一致的話,說(shuō)明Python已經(jīng)成功安裝。

# python -V \\返回Python3.8.0證明python可以正常使用了


12. 配置pip軟鏈接

ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
# find / -name pip \\找不到pip文件夾在哪的時(shí)候,可以借助這個(gè)命令
# python -m pip install --upgrade pip \\升級(jí)pip的時(shí)候用這個(gè)命令

13. 檢查pip是否可用

# pip -V \\ 返回pip 19.3.1 from ....(省略若干個(gè)字符)就代表pip也可以正常使用了


15. 在centos上安裝git

因?yàn)槲倚枰惭bgit,需要借助yum,這也是為什么我一直擔(dān)心yum不好使

# yum install git -y


至此Centos7,云服務(wù)器上
python3.7、pip、yum、git 就都有了,并且可用


其他避坑指南

以下內(nèi)容暫時(shí)沒(méi)遇到,所以沒(méi)實(shí)測(cè),放在這里備用

其實(shí),對(duì)于Python3的安裝,網(wǎng)絡(luò)上有太多的帖子了,步驟其實(shí)都大同小異。但是,在真正動(dòng)手安裝之后,或多或少都會(huì)遇到一些麻煩,特別是對(duì)新手而言。下面良許就列舉一些常見(jiàn)的坑:

坑1:configure: error: no acceptable C compiler found in $PATH

這個(gè)問(wèn)題就比較簡(jiǎn)單,就是缺少gcc編譯環(huán)境。將gcc安裝上即可:

yum install -y gcc

當(dāng)然除此之外,采用源碼安裝的方式也可以。

坑2:zipimport.ZipImportError: can't decompress data

這種問(wèn)題就是因?yàn)槿鄙賨lib 的相關(guān)工具包導(dǎo)致的,將相關(guān)依賴包裝上即可:

yum -y install zlib*

安裝之后再重新編譯源碼,即可解決。

坑3:pip3: Can't connect to HTTPS URL because the SSL module is not available

這個(gè)問(wèn)題是因?yàn)樵?/configure過(guò)程中,如果沒(méi)有加上–with-ssl參數(shù)時(shí),默認(rèn)安裝的軟件涉及到ssl的功能不可用,剛好pip3過(guò)程需要ssl模塊,而由于沒(méi)有指定,所以該功能不可用。解決辦法如下:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install

坑4:Multilib version problems

這個(gè)很明顯了,就是同一個(gè)庫(kù)有多個(gè)版本。把多余的版本刪除了就好。

首先查詢已有的版本(以openssl為例,沖突哪個(gè)查哪個(gè))

# rpm -qa | grep openssl
openssl-devel-1.0.0-27.el6_4.2.x86_64
openssl-1.0.0-27.el6_4.2.x86_64
openssl-1.0.0-27.el6_4.2.i686

可以看到系統(tǒng)里安裝了openssl-1.0.0-27.el6_4.2.x86_64和openssl-1.0.0-27.el6_4.2.i686兩個(gè)版本的openssl,我們留下x86的版本即可:

rpm --erase --nodeps openssl-1.0.0-27.el6_4.2.i686

再更新一下openssl:

# yum update "openssl*"

再查詢一下openssl,問(wèn)題解決!

# rpm -qa | grep openssl
openssl-devel-1.0.1e-16.el6_5.7.x86_64
openssl-1.0.1e-16.el6_5.7.x86_64

本文參考鏈接:https://juejin.im/post/5cd15cf4e51d45475d5e8dc4

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容