前言:

安装完CentOS7后,执行#Python与#python -V,看到版本号是2.6,而且之前写的都是跑在python3.X上面的,3.X和2.X有很多不同,在这里我就不弊述两者之间的区别了新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、软件包都要依赖预装的老版本python的,比如yum。

而且python的多版本是可以共存的,下面会教大家如何处理共存问题

#python官方下载地址

https://www.python.org/downloads/

第1步:更新gcc,因为gcc版本太老会导致新版本python包编译不成功

复制代码代码如下:

#yum -y install gcc

系统会自动下载并安装或更新,等它自己结束

注意这里可能会报错!主要是提示权限不够需要切换到root超级用户下才可以安装,如下图所示

执行su命令切换用户,然后输入密码就可以了,忘记密码的请看另一篇博文

#su

第2步:下载Python-3.6.4软件包

复制代码代码如下:

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

注意:按照上述命令下载的软件包会存放在你当前的工作目录下,wget命令是一个从网络上自动下载文件的自由工具
说明:命令中的数字就是版本号,你也可以把3.6.4换成你需要的版本,截止至我撰稿时(2017年12月26日),最新可用版本是3.6.4,如上图所示

查看当前目录下是否下载了我们需要的Python-3.6.4.tar.xz

#ls

第3步:解压已下载的二进制包并编译安装

解压文件
#xz Python-3.6.4.tar.xz    # 如果这里下载的是xz文件所以要先解压一层才可以用
#tar -xvzf Python-3.3.0.tgz
 进入目录:

#cd Python-3.6.4

配置安装目录,其他选项一般默认即可:

#./configure  --prefix=/usr/python     #不配置也可以,直接./configure命令

开始编译安装:
#make         #编译的过程会比较慢,等一下就好了
#make install    #这里可能会报错,原因是缺少依赖包,解决办法直接看底部
#make clean 
#make distclean 
#python3 –V

编译安装完毕以后,可以输入上面一行命令,查看版本

第4步:建立软连接指向到当前系统默认python命令的bin目录

  整个过程大约5-10分钟,安装成功之后,安装目录就在/usr/python

  系统中原来的python在/usr/bin/python,通过ls -l可以看到,python是一个软链接,链接到本目录下的python2.7

  我们可以不用把这个删除,不对原来默认的环境做任何修改,只新建一个python3的软链接即可,只是需要执行python3代码时python要改成python3,或者python脚本头部解释器要改为#!/usr/bin/python3

  这里建立软链接如下:

$ ln -s /usr/python/bin/python3 /usr/bin/python3

  这样就建立好了,以后直接执行python3命令就可以调用python3了,另外如果仔细看python安装目录下的bin目录,实际上python3也是个软链接,链接到python3.5.1,这样多次链接也是为了多个版本的管理更加方便,

问题一:

  就是python3交互式界面特别不好用,删除不能正常使用,必须按Ctrl+删除键才可以,上下键重复命令也无法使用,左右调整光标也无法使用,这样调试代码效率很低,原因是python3缺少readline这个依赖,默认使用pip3 install readline会提示找不到包,所以只能是手动安装了

  因为readline依赖于ncurses库,如果没有这个库,编译readline的时候会提示can not find -lncurses,如果在centos环境下可以执行下面命令安装:

yum -y install ncurses ncurses-devel

  安装ncurses库之后,再安装readline,readline可以在pypi下载,地址:https://pypi.python.org/pypi/readline,这里一定要下载源码包,其余的只能用于python2,下载之后执行下面命令安装:

tar -xvzf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1/
python3 setup.py install

  这样执行完毕就为python3安装了readline,然后再进入交互式界面所有的操作都好用了

问题二:

  第一次安装的时候会报错:can't decompress data; zlib not available

解决办法:

  1、安装依赖zlib、zlib-devel 以及 ncurses ncurses-devel

# yum -y install zlib zlib-devel

  2、重新编译安装Python

# make install

版权所有,以示正版!

欢饮大家一起在下方讨论。

超详细的 Linux CentOS 编译安装python3的更多相关文章

  1. Linux下编译安装python3

    Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装py ...

  2. CentOS编译安装Python3

    前话 最近想学一下一门新的高级语言,无意中看到用python仿AIphaGo的github项目,就决定是他了. AIphaGo的Git传送门: https://github.com/Rochester ...

  3. 在Linux - Centos上安装Python3(上)

    必看内容 在Linux上安装Python常用的2种方法 1.Python源码编译安装,有点复杂,适合老司机 2.从EPEL/IUS仓库安装,新手建议使用些方法,比较简单,目前2019-07-31提供最 ...

  4. centos编译安装python3怎么做?

    照着我的博客操作 你一定能成功的!因为我就是一步一步的做出来的,虽然只有文档,但是希望你能有耐心!!!! 编译安装难么麻烦,为什么还要编译安装? 那我告诉你想进步就要折腾!你习惯了windows的安装 ...

  5. linux centos编译安装php7.3

    php7.2的编译安装参考:https://www.cnblogs.com/rxbook/p/9106513.html 已有的之前编译的旧版本php: mv /usr/local/php /usr/l ...

  6. Linux下编译安装Python-3.6.5

    1.下载Python-3.6.5安装包 在Python官网(https://www.python.org/downloads/)下载对应的安装包,选择3.6.5的linux版本,如下图: 2.将安装包 ...

  7. 超详细的 Linux CentOS yum 源的配置与使用【转发+新增】

    一.yum 简介 yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发行版的 ...

  8. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  9. CentOS 7编译安装Python3.7.X

    在CentO S上通过编译安装Python3.7,添加python3软链,并使用python3. 环境 安装环境如下: Windows 10 Pro VMWare Workstation 15 Pro ...

随机推荐

  1. C#连接六类数据库的代码集

    本文列出了C#连接Access.SQL Server.Oracle.MySQL.DB2和SyBase六种不同数据库的程序源码和需要注意的点. 1.C#连接Access 程序代码: ;

  2. Openstack的打包方法

    使用setup.cfg和setup.py进行管理 1.setup.py文件内容 # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO ...

  3. hive Beeline plus HiveServer2简单使用

    HiveServer2是经常与beeline一起使用,可以用jdbc客户端远程连接,一般用于生产环境. 在提供传统客服端的功能之外,还提供其他功能: Beeline连接 1.先在hadoop集群启动H ...

  4. windows下忘记mysql的root密码解决方法(图文)

    在windows下忘记mysql的root密码对于很对新手来说,也是会经常遇到的,我也刚好遇到啦,参考网上的解决办法,自己又整理啦一下. 1.首先需要查看mysql的服务是否启动. 打开cmd窗口,输 ...

  5. Liunx文件解压与压缩

    文件压缩和解压缩 常见压缩格式如下 .zip .gz .bz2 .tar.gz .tar.gz2 .zip压缩 zip 压缩文件名 源文件 压缩文件 zip -r(递归) 压缩文件名 源目录 压缩目录 ...

  6. 《Metasploit魔鬼训练营》第四章(下)

    p163 XSSF 默认kali 2.0中没有xssf,先下载:https://code.google.com/archive/p/xssf/downloads 将下载下来的zip文件解压,将其中的d ...

  7. laravel whereDate()方法的使用

    今天在做日期查询,过过滤的时候,发现了一个问题,用where()语句,要求时间格式比较严格,比如你要查2017-09-23这一天的活动,你在输入框传入2017-09-23,系统会默认帮你补上后面缺少的 ...

  8. php数据分页显示基础

    一:分页原理: 所谓分页显示,也就是将数据库中的结果集认为的分成一段一段的来显示,需要两个初始的参数: 每页多少条记录 ($PageSize)? 当前是第几页($CurrentPageID)? 还有其 ...

  9. Just for 面试

    ZOJ题目分类 初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1 ...

  10. Dashboard集群

    #Dashboard集群 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##.Dashboard集群 #####在 ...