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逃沿、按下鍵盤(pán)上的“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.reibang.com/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是否正扯⒋可用
執(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