CentOS 6.x 升級Python2.6.x到Python2.7.x

CentOS 6.X 自帶的python版本是 2.6 , 由於工作需要,很多時候需要2.7版本。所以需要進行版本升級。由於一些系統工具和服務是對 Python 有依賴的,所以升級 Python 版本需要注意。

升級步驟

如何歡樂的,沒有痛苦的升級python版本 ,往下看 …

1. 更新系統和開發工具集

更新指令,並安裝必要的開發工具,比如gcc等:

yum -y update
yum groupinstall -y 'development tools'

另外還需要安裝 python 工具需要的額外軟件包 SSL, bz2, zlib:

yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget

源碼安裝Python 2.7.x:

wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
unxz Python-2.7.10.tar.xz
tar -vxf Python-2.7.10.tar

如果系統沒有安裝xz軟件包或者tar軟件包,運行下面的命令安裝:

yum -y install xz
yum -y install tar

執行完以上命令會解壓得到Python-2.7.10這個文件夾,進入該目錄並執行以下命令進行配置。

./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib --prefix=/usr/local

其中 --enable-loadable-sqlite-extensions 是sqlite的擴展,如果需要使用的話則帶上這個選項。

之後執行:

vi ./Modules/Setup

找到 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 去掉註釋並保存,然後進行編譯和安裝。

make && make install

安裝好Python2.7之後我們需要先把Python2.6備份起來,然後再對yum的配置進行修改,如果不進行這一步操作的話,執行yum命令將會提示你Python的版本不對。

(1)執行以下命令,對Python2.6進行備份,然後爲Python2.7創建軟鏈接:

mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python

(2)然後編輯/usr/bin/yum,將第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6
現在執行yum命令已經不會出現之前的錯誤信息了。


我們執行python -V查看版本信息,如果出現錯誤:

error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

編輯配置文件:

vi /etc/ld.so.conf

添加新的一行內容/usr/local/lib,保存退出,然後:

/sbin/ldconfig  
/sbin/ldconfig -v

2. 安裝pip

下載最新版的pip,然後安裝。

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

查找pip的位置:

whereis pip

找到pip2.7的路徑,爲其創建軟鏈作爲系統默認的啓動版本。

ln -s /usr/local/bin/pip2.7 /usr/bin/pip

pip安裝完畢,現在可以用它下載安裝各種包了。

3. python命令行中backspace鍵出現^H的問題

我一直以來在遠程到 Linux 服務器使用其中的 Python、Perl、MongoDB 自帶的 shell 時,都會出現敲擊 Backspace 鍵刪除某些字符時,字符沒有被刪除,反而會出現 ^H,只能使用 Ctrl-W 來刪除整個單詞,非常影響效率,今天閒來無事又看了一遍 《Guide To Unix And Linux》,發現了這個問題的原因
先查看服務器上的 erase 信號的映射:

stty -a

會出現:

erase信號

可以看出這裏的 erase 信號爲 ^?,而發送過去的卻是 ^H,這就是敲擊 Backspace 時爲什麼不會刪除字符而會顯示 ^H 的原因,如果要解決這個問題,可以使用 Ctrl-Backspace 鍵來發送 ^? 信號來刪除字符,但是這樣還是太麻煩了,需要用組合鍵,而最簡單的方法就是把 Linux 服務器中的 erase 信號設置爲 ^H:

stty erase ^H

再看一下 erase 信號的映射:

erase信號

變爲 ^H 了,這樣就可以敲擊 Backspace 來刪除字符,但是這樣只是臨時的,系統重啓過後就會失效,可以把這條命令寫入家目錄下的 .bash_profile 文件中實現永久修改。

4. 參考鏈接

  1. https://ruter.github.io/2015/12/03/Update-python/
  2. https://ruiaylin.github.io/2014/12/12/python%20update/
  3. http://leeyx.org/archives/1111
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章