Centos6.8 python2.6升級至2.7,並安裝setuptools和pip
題記:申請了一個測試伺服器,自帶python版本為2.6,但是至少pyhton2.7才能滿足我的需要,花了兩個晚上終於搞定,因此將遇到的問題整理一下。
一、python2.6升級至Python2.7
1.檢視當前python版本
$ python -V
$ python 2.6.6
2.下載Python-2.7.12
$ wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
3.解壓縮並更改工作目錄
$ tar zxvf Python-2.7.12.tgz
$ cd Python-2.7 .12
4.安裝
$ ./configure
$ sudo make all
$ sudo make install
$ sudo make clean
$ sudo make disclean
5.檢視版本資訊
$ /usr/local/bin/python2.7 -V
6.簡歷軟連線,使系統預設的python指向python2.7
$ sudo mv /usr/bin/python /usr/bin/python2.6.6 #備份
$ sudo ln -s /usr/local/bin/python2.7 /usr/bin/python # 建立軟連線
7.重新檢驗Python版本
$ python -V
$ sudo python -V
需要注意的是,可能會出現普通使用者的python和sudo的python版本不同的情況,此時要檢查一下軟連線的建立是否正確,不然,在接下來使用sudo python setup.py install 安裝package的時候會安裝到Python2.6裡。
我就是遇到了這個問題,網上建議的解決方法是使用sudo -i python setup.py install使其定址到python2.7,或者直接指定python2.7的位置。在我嘗試了sudo -i python -V這個命令,發現結果依然是python 2.6.6之後,便放棄了sudo -i的方法,然後重新做了一次軟連線,雖然好像我兩次做的完全一樣,但不知道為什麼,成功使得sudo python -V的結果也是python 2.7.12了。
8.指定yum的Python版本
由於系統python軟連線指向python2.7之後,yum將無法正常工作,出現“No module named yum”的報錯。
解決方式如下:
$ sudo vim /usr/bin/yum
將檔案頭部的
#!/usr/bin/python
改為
#!/usr/bin/python2.6.6
二、安裝setuptools和pip
在完成Python的升級之後,接下來就是安裝python的各種package了。但是有一很大的麻煩:如果使用 sudo yum install python-pip命令安裝pip的話,將會直接安裝到python2.6中。我還遇到了一個問題就是下載pip的壓縮檔案,使用sudo python setup.py install命令,又會報錯說沒有setuptools模組;下了setuptools的壓縮檔案,網上說使用ez_setup.py安裝,但壓縮包裡只有easy_install.py和setup.py兩個安裝檔案,安裝起來也是各種報錯。簡直讓人絕望,還好最後找到了一個ez_setup.py的下載連結(https://bootstrap.pypa.io/ez_setup.py),這才拯救了我。
1.下載安裝ez.setup.py
$ wget https://bootstrap.pypa.io/ez_setup.py
$ sudo python ez_setup.py install
2.下載安裝pip
$ tar -zxvf pip-9.0.1.tar.gz
$ cd pip-9.0.1
$ sudo python setup.py install