CentOS7下將Python的版本升級為3.7


眾所周知,在2020年python官方將不再支持2.7版本的python,所以使用3.x版本的python是必要的,但是linux中默認安裝的python一般是2.6和2.7版本的,要是使用linux下的python就很有必要升級一下

 

進入正題

 

1.檢查確認系統的相關信息

[root@localhost /]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
[root@localhost /]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost /]# python -V
Python 2.7.5

當前的python版本號為2.7.5

 

2.下載安裝Python-3.7.0

1) 下載Python-3.7.0.tgz軟件包

[root@localhost /]# mkdir -p /server/tools/
[root@localhost /]# cd /server/tools/
[root@localhost tools]# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

也可以手動下載再上傳到服務器:https://www.python.org/ftp/python/

 

2) 解壓編譯安裝

[root@localhost tools]# tar -xf Python-3.7.0.tgz

[root@localhost tools]# cd Python-3.7.0

[root@localhost Python-3.7.0]# ./configure --with-ssl

[root@localhost Python-3.7.0]# make

[root@localhost Python-3.7.0]#  make install 

 

異常處理:

1、如果編譯出錯,需要檢查make,gcc等是否安裝好:yum install make gcc gcc-c++

2、如果出現這種錯誤則需要安裝zlib的解壓縮類庫,再執行make install :yum -y install zlib*

import pip._internal
zipimport.ZipImportError: can't decompress data; zlib not available

3、ModuleNotFoundError: No module named '_ctypes':

3.7版本需要一個新的包libffi-devel,安裝此包之后再次進行編譯安裝即可:yum install libffi-devel -y

 

出現一下提示,則說明安裝成功

 

3) 安裝完成,需要更改默認的python版本

# 檢查當前默認的python2,默認自帶的python位置在”/usr/bin/“目錄下

[root@localhost Python-3.7.0]# ll /usr/bin/python*
lrwxrwxrwx. 1 root root 7 3月 26 23:38 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root 9 3月 26 23:38 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 10月 31 2018 /usr/bin/python2.7

 

 

# 檢查新安裝的python3,默認編譯安裝的python位置在”/usr/local/bin/“目錄下

[root@localhost Python-3.7.0]# ll /usr/local/bin/python*
lrwxrwxrwx. 1 root root 9 6月 16 21:47 /usr/local/bin/python3 -> python3.7
-rwxr-xr-x. 2 root root 13966016 6月 16 21:46 /usr/local/bin/python3.7
lrwxrwxrwx. 1 root root 17 6月 16 21:47 /usr/local/bin/python3.7-config -> python3.7m-config
-rwxr-xr-x. 2 root root 13966016 6月 16 21:46 /usr/local/bin/python3.7m
-rwxr-xr-x. 1 root root 3097 6月 16 21:47 /usr/local/bin/python3.7m-config
lrwxrwxrwx. 1 root root 16 6月 16 21:47 /usr/local/bin/python3-config -> python3.7-config

 

# 修改默認的python

# 刪除舊的python的軟連接,創建新的python2和python3的軟連接

[root@localhost Python-3.7.0]# cd /usr/bin/
[root@localhost bin]# rm -f python2
[root@localhost bin]# mv python python2.6.ori
[root@localhost bin]# ln -s python2.7 python2
[root@localhost bin]# ln -s /usr/local/bin/python3 /usr/bin/python

 

4) 檢查修改后的python版本

[root@localhost bin]# python -V
Python 3.7.0
[root@localhost bin]# python2 -V
Python 2.7.5
[root@localhost bin]# python3 -V
Python 3.7.0
[root@localhost bin]#

可以看到,默認打開的python版本已經是3.7.0,至此python的版本已經升級成功

 

3.后續的軟件問題處理

# python的默認版本修改為3.x之后,系統對於yum的調用會出問題,所以需要修改下yum的相關配置

[root@localhost bin]# vi /usr/bin/yum

# 需要檢查確認以下配置

由於此時的python已經指向python3,所以要改為明確指向python2

 

#!/usr/bin/python2

這樣,修改后的yum依然可以調用python2.7的python,在使用yum安裝軟件時就不會報錯了

 

另外就是,CentOS7還有另外一個文件需要修改

[root@localhost bin]# vi /usr/libexec/urlgrabber-ext-down

檢查確認以下配置:

改為

 

安裝一個軟件試試:[root@localhost bin]# yum -y install vim

 


免責聲明!

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



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