• 进入超级管理员目录  

    su root

  • 下载

  wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

  • 找到下载的文件解压

   tar -xzvf Python-3.7.0.tgz

  • 进入解压好的文件目录

    cd Python-3.7.0 

  • 创建安装文件夹

     kdir /usr/local/python37

  • 开始编译安装

   ./configure --prefix=/usr/local/python37

   ./configure --enable-optimizations

    提示:configure: error: no acceptable C compiler found in $PATH

   原来是缺少C编译器,需要安装GCC套件,于是采用如下命令安装,

   yum -y install gcc

   顺利下载安装成功,重复操作第四步命令:  ./configure --prefix=/usr/local/python3  顺利配置成功

   make

    make install

  • 错误

    错误1.

      zipimport.ZipImportError: can’t decompress data,

      是因为缺少zlib 的相关工具包导致的,知道了问题所在,那么我们只需要安装相关依赖包即可,

    1、打开终端,输入一下命令安装zlib相关依赖包:

       yum -y install zlib*1

        2、进入 python安装包,修改Module路径的setup文件:

     vim module/setup 1

   找到一下一行代码,去掉注释:

     #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

   去掉注释

   zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz123

   另外,在这里说明一下,对于在安装Python安装的过程中遇到这个问题,

        安装完上面的依赖包后,即可重新进入终端,进入python的安装包路径下执行:

     make && make install 1

  重新编译安装即可,

  • 错误2

   ModuleNotFoundError: No module named '_ctypes' make: *** [install] 错误 1

  3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可。

     #yum install libffi-devel -y

     #make install

  • 错误 3

   zipimport.ZipImportError: can't decompress data; zlib not available make: *** [install] Error 1

   解决:

    yum install zlib zlib-devel -y

  • 设置双版本

   mv /usr/bin/python /usr/bin/python_old2

  • 建立连接

  ln -s /usr/local/python37/bin/python37  /usr/bin/python

  • PS:(更新3.5.2)

    解压:tar -zxvf Python-3.5.2.tgz

  进入解压目录: cd Python-3.5.2

    创建安装目录: mkdir /usr/local/python3.5.2

   编译: ./configure –prefix=/usr/local/python3.5.2

  安装: make && make install

   备份原有python:mv /usr/bin/python /usr/bin/python_2.7.5

  • 第4步:建立软连接指向到当前系统默认python命令的bin目录,让系统使用新版本python

      mv /usr/bin/python /usr/bin/python2.7.5 //当前python的版本为2.7.5

     ln -s /usr/local/python3.5.2/bin/python3.5  /usr/bin/python

     输入:

            python -V

     即可查看当前默认python版本

    默认的python成功指向3.5.2以后,yum不能正常使用,需要修改yum的配置文件

  • 第5步:修改yum配置文件

   vi /usr/bin/yum

   把文件头部的

           !/usr/bin/python    改成    !/usr/bin/python2.7.5 //改为之前的老版本号

       保存退出,yum即可正常使用。如若有其他命令、软件不能正常使用,

          仿照yum配置文件的修改方法,修改其配置文件即可。至此,更新完毕。

  • 第6步:修改另外一个相关的配置文件

        vi  /usr/libexec/urlgrabber-ext-down

      该配置文件与yum install 命令有关,如果不修改该文件会报错

        File "/usr/libexec/urlgrabber-ext-down", line 28    except OSError, e:

      这是因为python版本不匹配:

       把文件头部的  !/usr/bin/python  改成    !/usr/bin/python2.7.5 //改为之前的老版本号

LInux下(centos7.2)更新 python3.7的更多相关文章

  1. linux下软件的更新命令

    linux下软件的更新命令   在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区 ...

  2. Linux下用ftp更新web内容!

    使用ftp更新web!让网页更新一次OK! 配置如下: 1.在Linux下安装ftp服务器! yum -y install vsftpd #ftp由vsftpd提供! 2.配置主配置文件/etc/vs ...

  3. linux下切换python2和python3(转)

    0x00 为什么需要有两个版本的Python Python2和Python3不兼容是每个接触过Python的开发者都知道的事,虽说Python3是未来,但是仍然有很多项目采用Python2开发.Lin ...

  4. Linux下切换python2和python3

    为什么需要有两个版本的Python Python2和Python3不兼容是每个接触过Python的开发者都知道的事,虽说Python3是未来,但是仍然有很多项目采用Python2开发.Linux的许多 ...

  5. Linux 下centos7启动 Tomcat 抛出Can't connect to X11 window server 问题的解决方法

    1 问题 今天启动 Tomcat 后,登录页验证码不见了.在 localhost.xxx.log 发现以下错误: org.apache.catalina.core.StandardWrapperVal ...

  6. linux下svn定时更新项目

    方法一.用shell脚本定时更新项目   1.进入网站的根目录,假设项目位置放在/var/www/test cd /var/www/test   2.建立脚本文件update.sh,分两步进行.首先利 ...

  7. kali linux下几个更新命令的区分

    首先更新命令有:apt-get update ,apt-get upgrade ,apt-get dist-upgrade等三个: (1)apt-get update:只更新软件包的索引源,作用:同步 ...

  8. linux 下svn同步更新钩子

    svn服务器搭建:https://www.linuxidc.com/Linux/2017-05/144254.htm SVN版本库中的一个项目:/svn/repositories/test/ 网站目录 ...

  9. linux下(centos7)docker安装

    参考链接https://docs.docker.com/install/linux/docker-ce/centos/ 第一步,确定是centos7及以上版本 cat /etc/redhat-rele ...

  10. Linux 下SVN自动更新

    1.找到svn的所在目录: 我的目录在/usr/local/svn/myproject 2.新建post-commit vim hooks/post-commit #!/bin/shexport LA ...

随机推荐

  1. Java NIO中的缓冲区Buffer(一)缓冲区基础

    什么是缓冲区(Buffer) 定义 简单地说就是一块存储区域,哈哈哈,可能太简单了,或者可以换种说法,从代码的角度来讲(可以查看JDK中Buffer.ByteBuffer.DoubleBuffer等的 ...

  2. Android开发之漫漫长途 XVII——动画

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  3. solr源码分析之数据导入DataImporter追溯。

    若要搜索的信息都是被存储在数据库里面的,但是solr不能直接搜数据库,所以只有借助Solr组件将要搜索的信息在搜索服务器上进行索引,然后在客户端供客户使用. 1. SolrDispatchFilter ...

  4. MySQL之库、表操作

    一.库操作 创建库 create database 库名(charset utf8 对库的编码进行设置,不写就用默认值) 库名可以由字母.数字.下划线.特殊字符,要区分大小写,唯一性,不能使用关键字, ...

  5. 修改任务显示WrkTaskIp.aspx页面

    环境:Sharepoint2010 需求:在审批任务页面中插入或显示表单或列表内容,让内容与审核在同一页面上. 修改文件:WrkTaskIp.aspx(改前记得备份) 文件所在的路径:C:\Progr ...

  6. IdentityServer4-Resource定义-翻译

    资源定义(Defining Resource) 通常,第一件事是定义那些你想保护的资源.这些资源可能是你的用户信息,比如个人数据,电子邮件或者对Api的访问. Note: 你可以用C#实体类来定义资源 ...

  7. 【Tomcat】Tomcat日志切割

    下载并解压缩 cronolog # tar zxvf cronolog-1.6.2.tar.gz 2.进入cronolog安装文件所在目录 # cd cronolog-1.6.2 3.运行安装  # ...

  8. 【Spring】18、springMVC对异常处理的支持

    无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异常处理,展现一个比较友好的错误页面就显得很有必要了.跟其他MVC框架一样, ...

  9. 【23】备忘录模式(Memento Pattern)

    一.引言 在上一篇博文分享了访问者模式,访问者模式的实现是把作用于某种数据结构上的操作封装到访问者中,使得操作和数据结构隔离.而今天要介绍的备忘者模式与命令模式有点相似,不同的是,命令模式保存的是发起 ...

  10. Linux常用基本命令:三剑客命令之-sed

    sed是一个很强大的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作 格式:sed [option] [command] [file] 常用命令: a   ∶新 ...