linux python版本升級


升級python版本的時候千萬不能卸載python 2.6,再安裝python2.7,這樣會有無窮無盡的麻煩,保守的方式

是直接安裝python2.7的源碼包,也就是python兩個版本共存。(因為Centos里面有很多程序是依賴着python,

所有最好不要嘗試去卸載python2.6)。 

 

安裝python需要用到gcc工具,首先查看gcc是否安裝 

# gcc -v

如果未安裝則使用yum命令安裝

# yum -y install gcc

下載最新安裝python包

# wget http://python.org/ftp/python/2.7.10/Python-2.7.10.tgz

解壓包

# tar -xzvf Python-2.7.10.tgz 

編譯安裝

# cd Python-2.7.10

# ./configure --prefix=/usr/local/python2.7 

# make && make install

(
注:如果想用最新的get-pip方式安裝pip, 在安裝python前先用yum安裝依賴包,不然會提示如下錯誤,
zipimport.ZipImportError: can't decompress data; zlib not available
cannot import name HTTPSHandler
# yum install zlib-devel  or  yum install zlibc zlib1g-dev 
# yum install openssl openssl-devel  or openssl*
***讓python支持zlib包,還需要在配置(./configure)之后修改Modules/Setup文件,
***# sudo vi Modules/Setup  // 找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz這行代碼(460左右),刪除前面的“#”然后再進行編譯(make)、安裝(make install)

***經測試提前安裝好zlib-devel后,無需修改安裝文件,也可正常安裝get-pip.py
)

建立軟連接,使系統默認的python指向python2.7 

正常情況下即使python2.7安裝成功后,系統默認指向的python仍然是2.6.6版本

如何實現將系統默認的python指向到2.7版本呢?

# mv /usr/bin/python /usr/bin/python.bak

# ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python  # 添加軟連接 

如果是默認安裝路徑則使用下面命令

# ln -s /usr/local/bin/python2.7 /usr/bin/python

檢驗python指向是否成功

# python -v

 

注意以后安裝的python工具包例如easy_install,pip等,都會安裝在/usr/local/python2.7/bin 目錄下

要想直接使用這些命令還需要把/usr/local/python2.7/bin添加到$PATH變量中

1、編輯/etc/profile文件(永久生效)

找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL這行上面加入

PATH=$PATH:/usr/local/python2.7/bin

重新初始化文件,使文件立即生效

source /etc/profile or . /etc/profile 

2、在用戶目錄下的~/.bash_profile文件中增加變量,對單一用戶生效(永久的)

3、在shell的命令行下直接使用[export PATH=$PATH:/usr/local/python2.7/bin]定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了(臨時的)

 

 

修復不能正常工作的yum,如果有使用yum的話會發現出錯,這是因為yum 依賴2.6.6而現在默認的 Python 版本是2.7.10。

# vi /usr/bin/yum

將首行顯示的 !#/usr/bin/python 修改為 !#/usr/bin/python2.6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM