需求
在centos7上的python版本為2.7,而python部分新的庫(kù)只能在python3上跑,因此我們需要更新到python3,我也建議大家迅速轉(zhuǎn)向python3,畢竟這是主流肋坚,python2將在2020年即失去官方支持。
1. 下載Python3.6.1的安裝包
默認(rèn)Linux的安裝包只能是源碼安裝
# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
由于xz結(jié)尾的文件悲雳,故可以使用如下命令來(lái)解壓
# xz -d Python-3.6.1.tar.xz
# tar xvf Python-3.6.1.tar
2. 安裝配置
進(jìn)入解壓縮后的目錄,安裝配置
# cd Python-3.6.1
# ./configure
執(zhí)行 ./configure 時(shí)香追,可能會(huì)報(bào)錯(cuò)
# configure: error: no acceptable C compiler found in $PATH
原因是沒(méi)有安裝gcc合瓢,因?yàn)閜ython是用C寫(xiě)的,所以需要用gcc進(jìn)行編譯透典,所以需要先安裝gcc
# yum install make gcc gcc-c++
3. 編譯安裝
配置完成之后晴楔,就可以進(jìn)行編譯了
# make all
安裝,此處要等到比較長(zhǎng)的時(shí)間峭咒,大概十幾分鐘
# make install
又安裝失敗了税弃,我還能怎么辦,我也很絕望
zipimport.ZipImportError: can't decompress data; zlib not available
但是這個(gè)世界上是沒(méi)有程序員解決不到的事情的凑队!以下這個(gè)就是解決辦法
zipimport.ZipImportError: can't decompress data; zlib not available 解決辦法
按照方法安裝完依賴(lài)包则果,重新執(zhí)行以下語(yǔ)句
# make && make install
成功安裝!
4. 驗(yàn)證安裝
# python -V
# python3 -V
一個(gè)是舊版本 2.x漩氨,另外一個(gè)是新版本 3.x
5. 設(shè)置python3.x為默認(rèn)版本
查看 Python 的路徑西壮,在 /usr/bin 下面〗芯可以看到 python 鏈接的是 python 2.7款青,所以,執(zhí)行 python 就相當(dāng)于執(zhí)行 python 2.7
[root@VM_181_254_centos Python-3.6.1]# ls -al /usr/bin | grep python
lrwxrwxrwx 1 root root 7 Jun 2 14:10 python.bak -> python2
lrwxrwxrwx 1 root root 9 Jun 2 14:10 python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Nov 6 2016 python2.7
將原來(lái) python 的軟鏈接重命名
# mv /usr/bin/python /usr/bin/python.bak
將 python 鏈接至 python3
# ln -s /usr/local/bin/python3 /usr/bin/python
這時(shí)霍狰,再查看 Python 的版本
# python -V
Python 3.6.1
配置yum
python升級(jí)后抡草,發(fā)現(xiàn)yum無(wú)法使用了
# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
原因:這是因?yàn)閥um采用python作為命令解釋器,這可以從/usr/bin/yum文件中第一行#!/usr/bin/python發(fā)現(xiàn)蔗坯。而python版本之間兼容性不太好康震,使得2.X版本與3.0版本之間存在語(yǔ)法不一致問(wèn)題。而CentOS 7自帶的yum采用的是python2.7宾濒,當(dāng)系統(tǒng)將python升級(jí)到3.0后签杈,出現(xiàn)語(yǔ)法解釋錯(cuò)誤。
解決辦法:
很簡(jiǎn)單鼎兽,一是升級(jí)yum答姥,二是修改yum的解釋器為舊版本python2.7(如果你沒(méi)有采用覆蓋升級(jí)的話)
升級(jí)yum的作法就不詳述了;
修改yum的解釋器為舊版本python2.7
# vi /usr/bin/yum
將第一行"#!/usr/bin/python" 改為 "#!/usr/bin/python2.7"即可
下面也同樣修改
# vi /usr/libexec/urlgrabber-ext-down
至此谚咬,python就以及完全安裝好了鹦付!
參考的博客:
感悟
這個(gè)更新過(guò)程很簡(jiǎn)單,不過(guò)更新起來(lái)卻一波三折择卦,百度的搜索算法有毒敲长,有很多無(wú)法正確升級(jí)的教程居然可以放在第一頁(yè)郎嫁。不過(guò)也正因?yàn)槿绱耍跊](méi)有一個(gè)好的教程的情況下祈噪,自己要準(zhǔn)確知道每一步的作用和意義泽铛,也由于這個(gè)原因,自己對(duì)在Linux系統(tǒng)上安裝軟件有了一個(gè)新的了解辑鲤。