這是一篇奠基文,雖然很多年前上大學(xué)的時候自己就開始做技術(shù)博客固翰,但是后來主要是因?yàn)閼型彩危直缓芏鄤e的瑣事所干擾不能一門心思搞技術(shù)缴啡,所以就中斷了。現(xiàn)在決定重新記錄龄砰,一來很多知識都是重復(fù)運(yùn)用盟猖,用完不去加強(qiáng)記憶,下一次要用的時候又要再次搜索换棚,效率非常低下式镐,二來做技術(shù)還是不能太閉門造車,如果能和網(wǎng)友們一起分享探討固蚤,指出我的不足之處娘汞,對于自身一定是有幫助的。
本人行文比較啰嗦夕玩,重要的干貨都用粗體標(biāo)記了
今天就來記錄在centos中安裝python3和pip3的方法你弦。
環(huán)境:阿里云香港ECS惊豺,64位centos7.4。
centos操作系統(tǒng)本身是自帶python2的禽作,但是由于我學(xué)習(xí)python就是學(xué)習(xí)的python3尸昧,而且據(jù)說python將來也要用python3一統(tǒng)天下了,所以想安裝python3來替代掉原有的python2旷偿。
直接sudo yum install python3是不行的烹俗,提示沒有可用的軟件包。搜了下是要用源代碼編譯安裝萍程,google了一下下載了https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz幢妄,但實(shí)際上在官網(wǎng)(https://www.python.org/downloads/source/)可以找到最新版的python安裝包,都已經(jīng)3.7了
命令:wget --no-check-certificate https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
之所以有--no-check-certificate選項(xiàng)應(yīng)該是https協(xié)議(而非http)造成的
下載后解壓茫负,進(jìn)入目錄后執(zhí)行:
sudo ./configure?--prefix=/usr/local/python3
這一步暫時還不明白是什么意思蕉鸳,別人的博客上說是創(chuàng)建指定目錄,我感覺這還待進(jìn)一步確定忍法。
然后make && sudo make install潮尝,等待安裝完成即可
我在make && sudo make install的時候并沒有提示軟件庫依賴不足,可能是由于我之前安裝apache php mysql之類的時候已經(jīng)安裝過所需依賴了缔赠。
這個時候輸入python --version仍然是提示python2的版本衍锚,我們要創(chuàng)建一個連接文件才能執(zhí)行python3命令:
sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
然后輸入python3 --version就能提示3.6.0版本了,輸入python --version提示2.7.0版本嗤堰,這樣就能兩個版本共存戴质。
如果想直接用python命令來調(diào)用python3,用python2命令來調(diào)用python2踢匣,可以重新創(chuàng)建命令python的連接文件
可以先備份一下原有的python連接文件
sudo mv /usr/bin/python /usr/bin/python.backup
然后創(chuàng)建新的連接文件
sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
然后通過python --version查看就能顯示出3.6.0版本了
我的環(huán)境中已經(jīng)默認(rèn)了有python2命令的連接文件指向2.7.0的python告匠,因此不需要重新創(chuàng)建。
但是由于yum使用的是python2离唬,講默認(rèn)的python命令指向python3后使用yum命令會出錯后专,因此還需要更改一下yum配置文件:
ls /usr/bin/yum*
一共有7個:yum? ? ? ? ? yum-config-manager? yum-debug-restore? yum-groups-manager
yum-builddep? yum-debug-dump? ? ? yumdownloader
每個都要改,例如:
sudo vi /usr/bin/yum
將第一行被我們更改的連接文件改成python2的連接文件即可:
#!/usr/bin/python2
嘗試了一下sudo yum update输莺,仍然提示出錯:
File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e:
? ? ? ? ? ? ? ? ? ^SyntaxError: invalid syntax
? File "/usr/libexec/urlgrabber-ext-down", line 28? ? except OSError, e:
? ? ? ? ? ? ? ? ? ^SyntaxError: invalid syntax
? File "/usr/libexec/urlgrabber-ext-down", line 28? ? except OSError, e:
? ? ? ? ? ? ? ? ? ^SyntaxError: invalid syntax
? File "/usr/libexec/urlgrabber-ext-down", line 28? ? except OSError, e:
既然他說到/usr/libexec/urlgrabber-ext-down這個文件戚哎,那么我們也打開看一看,發(fā)現(xiàn)頂部仍然需要改成python2嫂用,更改完成后再次執(zhí)行sudo yum update則沒有任何問題型凳。
至此python安裝完畢,接下來是pip嘱函,仍然是下崽源代碼安裝甘畅,只不過安裝的時候要確保是使用python3進(jìn)行install,源代碼從github下載:
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
解壓后進(jìn)入目錄,使用python3 setup.py install進(jìn)行安裝疏唾,別忘了sudo
安裝完成后也可以做一個pip的連接蓄氧,讓pip的默認(rèn)版本為python3:
sudo ln -s /usr/local/python3/bin/pip /usr/bin/pip3
這樣,pip2和pip3在計(jì)算機(jī)中共存了槐脏,pip2命令調(diào)用pip2喉童,pip命令調(diào)用pip3