以前我在windows 10系統上面安裝python 3.7,雖然在windows 上面安裝簡單,操做也方便,可是想要和linux 的shell 腳本交互就不方便了。所以,我決定在centos 7上面也安裝上python最新版本
在這期間,我踩了不少坑,也填了不少坑,後來幾乎要面臨崩潰了,期間發生了什麼?彆着急,耐心往下看!node
操做系統:CentOS 7.4 64位python
wget www.python.org/ftp/python/…linux
tar xvf Python-3.8.0a3.tar.xz
cd Python-3.8.0a3
./configurec++
查看報錯信息,能夠看出是系統缺乏編譯工具gcc c++之類shell
yum install gcc gcc-c++ make cmake -y
./configurevim
接下來編譯安裝windows
make && make installcentos
上網查詢,應該是缺乏openssl-devel,安裝openssl-devel,試過改各類配置文件,從新編譯安裝性能優化
yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel -y
make clean
make && make install服務器
隨後心一狠,刪除Python-3.8.0a3解壓包,而後從新解壓,配置,編譯安裝
cd ~
rm -rf Python-3.8.0a3
tar xvf Python-3.8.0a3.tar.xz
cd Python-3.8.0a3
./configure
make && make install
查詢報警信息,原來是少了libffi-devel依賴包,安裝libffi-devel
yum install libffi-devel -y
make install
(1)查看python版本號
(2)進入python環境
友情提示:此時直接使用python命令,默認是運行系統自帶的python2.7,不是新版本Python3.8命令,pip命令是python2.7的,pip3命令纔是python3.8的!
原本到這一步,新版本python可使用了,就是每次使用命令都是python3,pip命令是pip3 install ,我以爲特別麻煩,因而進行了下面步驟操做(前方高能,千萬不要模仿,千萬不要模仿,千萬不要模仿,重要的事情說3遍!!!):
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps
whereis python |xargs rm -frv
whereis python
python
我覺得成功刪除python就結束了,沒想到當我使用yum 命令安裝軟件時,才發現出問題了:
我試着把其餘的服務器上的/usr/bin/python文件拷貝過來使用,可是依舊一樣報錯。(/usr/bin/python是二進制文件,也沒辦法修改)
我接着尋找其餘辦法,看到一篇訪問量挺高的博客,就嘗試了一下,操做以下:
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps #卸載yum
whereis yum |xargs rm -frv
下載相關包
wget vault.centos.org/7.4.1708/os…
...... #省略相關步驟
使用rpm安裝python和yum依賴包
rpm -Uvh --replacepkgs python.rpm.rpm yum*.rpm
rpm -Uvh --replacepkgs rpm-python
但是,我下載相關包失敗後,這時候,我纔看到了底下評論,好多人都說這種辦法根本行不通,只能重裝系統了!我當時想死的心都有了。
在屢次嘗試失敗後,只好求助阿里雲技術人員(服務器是阿里雲的!),人家給出了建議:初始化磁盤(等同於重裝系統)
1.在安裝前要下載好全部依賴包,避免編譯安裝時出錯。
2.瞭解yum 和python的關係,yum 安裝軟件須要依賴Python環境。
3.網上的技術文檔未必每一篇都實用,尤爲是刪除,卸載軟件類要十分慎重,最好有備份!
4.centos 系統刪除yum及python後,並不是無解,只是因爲版本不一樣,相關軟件包十分很差找,這個坑仍是不要去踩!
cd /usr/local
wget www.python.org/ftp/python/…
yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel libffi-devel -y #安裝編譯工具
tar xvf Python-3.8.0a3.tar.xz
mv Python-3.8.0a3 python-3.8
cd /usr/local/python-3.8
./configure
make && make install
python3 -V
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3.8 /usr/bin/python #創建python命令軟鏈接
python
ln -s /usr/local/bin/pip3 /usr/bin/pip #創建pip命令軟鏈接
pip install --upgrade pip #測試pip命令(此處爲更新命令)
有人會問,python2版本都刪乾淨了嗎?怎麼檢查如今輸入python命令進入的是2版本仍是3版本,pip命令是在2版本中執行,仍是在3版本中執行的,這裏我總結了一些技巧!(圖片僅供參考,此時python2.7已經刪除,正常狀況不會出現python2.7相關圖片!)
python2.7版本
python3.8版本
在python2.7版本中
在python3.8版本中
vim /usr/bin/yum
將/usr/bin/python改成/usr/bin/python2.7
vim /usr/libexec/urlgrabber-ext-down
將/usr/bin/python改成/usr/bin/python2.7
yum install -y wget
給你們推薦一個架構技術交流羣:714827309 ,裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析 ,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。還能領取免費的學習資源,相信對於已經工做 和遇到技術瓶頸的碼友,在這個羣裏會有你須要的內容。 點擊連接加入羣聊【JAVA高級架構技術交流】:jq.qq.com/?_wv=1027&a…