程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Linux之python版本升級

編輯:Python

一、前言

升級glibc的時候根據INSTALL升級說明,要求python版本3.4以上。所以需要對python版本進行升級。centos7默認安裝的python版本為2.7.5,python通過yum安裝也只能安裝2.7.5版本,python3可以通過yum安裝3.6.8版本。如果需要更高的版本,只能通過源碼編譯安裝。此博文介紹源碼安裝方式升級python和python3版本,源碼編譯安裝要求操作系統已經安裝了gcc。環境說明如下:

  • 操作系統:centos7.6
  • python版本:升級前版本2.7.5,升級後2.7.18
  • python3版本:升級前3.6.8,升級後版本3.8.8

二、python安裝步驟

1、查看當前python版本

[[email protected] ~]# python -V
Python 2.7.5

2、yum安裝python

[[email protected] ~]# yum install -y python2
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Package python-2.7.5-90.el7.x86_64 already installed and latest version
Nothing to do

3、yum安裝python3

[[email protected] ~]# yum install -y python3
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed:
python3.x86_64 0:3.6.8-18.el7

Dependency Installed:
libtirpc.x86_64 0:0.2.4-0.16.el7 python3-libs.x86_64 0:3.6.8-18.el7 python3-pip.noarch 0:9.0.3-8.el7 python3-setuptools.noarch 0:39.2.0-10.el7

Complete!

三、python2升級步驟

0、查找需要升級的版本

python官網(包括python和python3所有的版本)查找需要安裝或者升級的版本。

1、下載python新版本

[[email protected] opt]# wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz

2、解壓軟件包

[[email protected] opt]# tar -zxvf Python-2.7.18.tgz

3、預編譯軟件包

[[email protected] opt]# cd Python-2.7.18
[[email protected] Python-2.7.18]# ./configure --prefix=/usr

4、編譯軟件包

[[email protected] Python-2.7.18]# make

running build_scripts
creating build/scripts-2.7
copying and adjusting /opt/Python-2.7.18/Tools/scripts/pydoc -> build/scripts-2.7
copying and adjusting /opt/Python-2.7.18/Tools/scripts/idle -> build/scripts-2.7
copying and adjusting /opt/Python-2.7.18/Tools/scripts/2to3 -> build/scripts-2.7
copying and adjusting /opt/Python-2.7.18/Lib/smtpd.py -> build/scripts-2.7
changing mode of build/scripts-2.7/pydoc from 644 to 755
changing mode of build/scripts-2.7/idle from 644 to 755
changing mode of build/scripts-2.7/2to3 from 644 to 755
changing mode of build/scripts-2.7/smtpd.py from 644 to 755
/usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python-gdb.py

5、安裝軟件包

[[email protected] Python-2.7.18]# make install

6、檢查升級後的版本

[[email protected] Python-2.7.18]# python -V
Python 2.7.18

四、python3升級步驟

1、下載安裝包

[[email protected] opt]# wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz

2、解壓軟件包

[[email protected] opt]# tar -zxvf Python-3.8.8.tgz

3、預編譯

注意在編譯結束後會有提示"If you want a release build with all stable optimizations active (PGO, etc),please run ./configure --enable-optimizations",加上–enable-optimizations預編譯的話後續編譯會報錯“Could not import runpy module ”,原因是gcc版本太低,enable-optimizations參數要求gcc版本8.1.0以上。

[[email protected] opt]# cd Python-3.8.8
[[email protected] Python-3.8.8]# ./configure

4、編譯

[[email protected] Python-3.8.8]# make

if test `uname -s` = Darwin; then
cp python-config.py python-config;
fi

5、編譯安裝

[[email protected] Python-3.8.8]# make install

Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

6、升級後版本檢查

[[email protected] Python-3.6.10]# python3 -V
Python 3.8.8

五、QA

1、安裝python3.8.8的時候報錯zlib not available

  • 報錯信息:zipimport.ZipImportError: can’t decompress data; zlib not available
  • 報錯原因:沒有安裝zlib模塊
  • 解決方案:安裝zlib模塊
    [[email protected] bin]# yum install -y zlib*

2、安裝完python之後yum報錯File “/usr/bin/yum”, line 30

  • 報錯信息:File “/usr/bin/yum”, line 30
  • 報錯原因:python軟連接指向了python3版本,而yum要求python2版本。
  • 解決方案1:修改python命令軟連接到python2
    [[email protected] bin]# sln python2 python
    [[email protected] bin]# python -V
    Python 2.7.5
  • 解決方案2:修改/usr/bin/yum文件,將python改為python2

3、安裝完成python之後yum安裝報錯File “/usr/libexec/urlgrabber-ext-down”, line 28

  • 報錯信息:File “/usr/libexec/urlgrabber-ext-down”, line 28
  • 報錯原因:yum下載程序依賴python2
  • 解決方案1:修改python命令軟連接到python2
  • 解決方案2:修改/usr/libexec/urlgrabber-ext-down文件,將python改為python2

4、升級到python2.7.18後報錯No module named rpm

  • 報錯信息:There was a problem importing one of the Python modules required to run yum. The error leading to this problem was:
    No module named rpm
  • 報錯原因:python2.7.18是python2的最新版本,已經移除了對yum的支持,centos8默認使用dnf軟件包安裝工具。
  • 解決方案:從其他centos7服務器拷貝一個python2.7.5到服務器/usr/bin目錄下,然後重建python軟鏈接。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved