centos7安裝較高版本python3.5/3.6


應用環境

Centos7或者RHEL7下默認安裝的python版本為2.7.x,更新不夠及時,現在很多時候需要額外安裝較高版本的python環境,

網上搜羅一圈總結記錄一下常用兩種方式:

       源碼編譯安裝

       第三方SCLo源安裝

 

測試環境

CentOS 7.4 minimal(虛擬機)

 

安裝步驟

方法一源碼編譯安裝(推薦)

1. 下載源碼包(官方下載:https://www.python.org/downloads/source/)

[root@server-1 ~]# wget http://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz

2. 安裝編譯依賴

1
[root@server-1 ~] # yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel gcc gcc-c++ make

3. 編譯安裝

[root@server-1 ~]# tar zxvf Python-3.5.5.tgz    
[root@server-1 ~]# cd Python-3.5.5
[root@server-1 Python-3.5.5]# ./configure --prefix=/opt/python3.5.5
[root@server-1 Python-3.5.5]# make && make install

4. 檢查

[root@server-1 Python-3.5.5]# cd /opt/python3.5.5/

5. 將高版本python配置到環境變量

[root@server-1 ~]# echo 'export PATH=$PATH:/opt/python3.5.5/bin' >> /etc/profile 
[root@server-1 ~]# . /etc/profile

6. 修改系統默認python版本為python3

[root@server-1 ~]# mv /usr/bin/python /usr/bin/python2.7.5   //把原來的重命名
[root@server-1 ~]# ln -s /opt/python3.5.5/bin/python3 /usr/bin/python

7. 解決python默認版本升級后yum不能正常工作

原因:yum報錯是因為yum運行后,其配置文件中指定python(默認2.x)版本不對了,因為我們上面將高版本的python做了軟連接至/usr/bin/python。

處理:重新修改配置文件中的python指向

[root@server-1 ~]# vim /usr/bin/yum

保存,退出;再次運行yum命令即可正常;

說明:其實不推薦修改系統的默認python版本,雖然方便,但是譬如以上出現的yum命令問題,雖然容易解決,但是,整個系統中不僅僅是

   yum單獨這個命令用到了調用了python,還設有其他文件或者文件也用到,解決方法可以一如既往地嘗試修改頭部python版本,不過

   就怕萬一遺忘在某次使用中。或者可以在使用python命令的時候不嫌麻煩地帶上個數字3,即python3 。

補充:需要修改python頭文件的還有以下文件:

   /usr/libexec/urlgrabber-ext-down

   /usr/bin/yum-config-manager     (yum-utils包生成)

   /usr/bin/yumdownloader     (yum-utils包生成)
        ……

 

 方法二第三方yum源安裝

1. 下載SCLo源

[root@server-1 ~]# yum -y install centos-release-scl-rh

2. yum安裝所需python版本

[root@server-1 ~]# yum install rh-python36

3. 載入環境變量

[root@server-1 ~]# scl enable rh-python36 bash

4. 檢查

5. 使開機啟動生效

[root@server-1 ~]# vim /etc/profile

添加如下兩句:

source /opt/rh/rh-python36/enable

export X_SCLS="`scl enable rh-python36 'echo $X_SCLS'`"

說明:此種安裝方式比較便捷,不過需要主機可以聯網,並且部分關鍵字和命令不夠通用熟悉。

 

結束.

 


免責聲明!

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



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