众所周知,在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

CentOS7下将Python的版本升级为3.7的更多相关文章

  1. CentOS下将Python的版本升级为3.x

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.x的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的,但 ...

  2. (转)LINUX CENTOS7下安装PYTHON

    LINUX CENTOS7下安装PYTHON 原文:http://www.cnblogs.com/lclq/p/5620196.html Posted on 2016-06-27 14:58 南宫羽香 ...

  3. Centos7下安装python环境

    前言 centos7默认是装有pyhton的. #检查python版本 [root@oldboy_python ~ ::]#python -V Python 但是众所周知,python2版本到2020 ...

  4. Linux Centos7下安装Python

    1.查看是否已经安装Python Centos7默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5. 使用python -V命令查看一下是否安装Pytho ...

  5. CentOS7 下升级Python版本

    来博客园的第一篇博客,以后要坚持养成记录.分享的习惯啊,这样生活才会有痕迹~ 服务器版本:CentOS 7.3 64位 旧Python版本:2.7.5 新Python版本:3.8.0 说明:本次配置使 ...

  6. Centos7下安装python,查看python版本

    安装Centos的时候,一般会自带默认安装python2.x 一般用python -V可以查看python版本. 我当时安装的时候,运行了那个语句,但是却显示了一大堆出来,虽然里面也带有版本信息,但是 ...

  7. CentOS7下安装Python的pip

    root用户使用yum install -y python-pip 时会报如下错误: No package python-pip available Error:Nothing to do 解决方法如 ...

  8. 在Centos7下安装Python+Selenium+Firefox学习环境

    Selenium 一自动化测试工具.它支持 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测 ...

  9. Linux下升级Python到3.5.2版本

    原文出处:https://www.cnblogs.com/tssc/p/7762998.html 本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在20 ...

随机推荐

  1. Beego学习笔记四:编写Model

    MVC实践一:编写模型 1>     打开mysql数据库,设计表的结构 <1>登录mysql数据库,如下 <2>这三个标注的参数皆有用,需要谨记. <3>创 ...

  2. 45、导航钩子函数中使用next()和next('\指定路径')的区别:

    当在router.beforeEach((to, from, next) 钩子函数中使用: 1.使用next()时,直接跳转到下一页,没有再执行导航钩子函数 2.使用next('指定路径')跳转到指定 ...

  3. phpStudy配置多站点多域名和多端口的方法

    切记:要想多个域名指向同一个项目,必须将phpstudy的根目录指向你项目所指的地方(原根目录是WWW),修改位置(其他菜单选项 - 软件设置 - 端口常规设置 - 网站目录) 站点:类似于  WWW ...

  4. Java 之 线程 —线程通信( 等待唤醒机制)

    一.线程间通信 概念:多个线程在处理同一资源,但是处理的动作(线程的任务)却不相同. 例如: 线程 A 用来生成包子的,线程 B 用来吃包子的,包子可以理解为同一资源,线程 A 与线程 B 处理的动作 ...

  5. Jmeter场景设置与监听

    目录 Jmeter场景设置 场景运行 Jmeter测试监控 Samples:取样器运行次数(提交了多少笔业务). Jmeter场景设置 场景的概念: 场景是用来尽量真实模拟用户操作的工作单元,场景设计 ...

  6. 如果centos7添加新网卡,系统不识别的解决办法

    #ifconfig 2.获取新增网卡的真实mac #ip addr 3.复制eth0到eth1并修改配置文件 #cd /etc/sysconfig/network-scripts #cp ifcfg- ...

  7. 洛谷P3069 [USACO13JAN]牛的阵容Cow Lineup(尺取法)

    思路 考虑比较朴素的解法,枚举每个长度为\(k+1\)的区间,然后统计区间中出现次数最多的颜色.这样的话复杂度为\(O(n*k)\)的,显然不行. 观察到统计每个区间中出现次数最多的颜色中,可以只用看 ...

  8. ARTS-week8

    Algorithm 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.如果,我们将这两个数相加起来,则会返回一个新的 ...

  9. CSS IE Hack

    条件注释判断浏览器!: [if !IE],The NOT operator. This is placed immediately in front of the feature, operator, ...

  10. The Best Open Source Game Engine: In Search Of Perfection

    https://www.greatsoftline.com/the-best-open-source-game-engine-in-search-of-perfection/ The game eng ...