首先:更新gcc,因为gcc版本太老会导致新版本python包编译不成功
代码如下:
#yum -y install gcc

然后下载python源tar包

可利用linux自带下载工具wget下载,如下所示:

wget http://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz

下载完成后到下载目录下,解压

tar -xzvf Python-3.6.0.tgz

进入解压缩后的文件夹

cd Python-3.6.0  

在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)

mkdir /usr/local/python3

  

开始编译安装

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

make

make install

注意 这一步可能出现Erro:zipimport.ZipImportError: can't decompress data; zlib not available

解决办法 :

、输入一下命令安装zlib相关依赖包:
yum -y install zlib*
、进入 Python安装包,修改Module路径的setup.dist文件:
vim module/setup.dist 找到一下一行代码,去掉注释: #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
去掉注释
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
另外,在这里说明一下,对于在安装Python安装的过程中遇到这个问题,安装完上面的依赖包后,即可重新进入终端,进入python的安装包路径下执行:
make && make install

此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字

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

  

再建立新版本python的链接

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

  

这个时候输入

python -V

  

就会显示出python的新版本信息

[idolaoxu@localhost home]# python -V

Python 3.6.0

PS:如果不建立新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,

这个大家可以自己试验下,当然如果还想保留原来的版本,那么这种方法最好不过了。

最后扩充下,

这种方法虽然能安装成功,但是它带来了新的问题,比如yum不能正常用了

修改/usr/bin/yum的第一行为:

#!/usr/bin/python_old2

就可以了

最新文章

  1. 使用TypeScript开发
  2. MySQL数据库sql语句的一些简单优化
  3. 【Thinking in Java】类和对象的初始化过程
  4. Spring IoC源码解读——谈谈bean的几种状态
  5. Linq查询数据集取得排序后的序列号(行号)
  6. quick -- 创建精灵和动作
  7. MVC3中几个小知识点
  8. HTML页面刷新、跳转
  9. input type=file
  10. O(V*n)的多重背包问题
  11. Ehcache(07)——Ehcache对并发的支持
  12. 功能强大支持64位操作系统的转Flash软件(doc转swf):Print2Flash
  13. HW2.7
  14. Makefile中include、-include、sinclude的区别
  15. 程序启动报错:ORA-12505;PL/SQL却可以登录的解决方法
  16. BF533的SPORT接口
  17. angular路由详解四(子路由)
  18. 使用nio遍历文件夹
  19. Ansible运维自动化工具19个常用模块使用实例【转】
  20. Android LayoutInflater 类分析

热门文章

  1. idea初学建立maven项目报错
  2. Linux shell命令无法使用
  3. 转:Nginx国人开发缩略图模块(ngx_image_thumb)
  4. SpringMVC异常报406 (Not Acceptable)的解决办法
  5. 51nod K 汽油补给 大根堆+小根堆....
  6. 【洛谷 P3834】 可持久化线段树1(主席树)
  7. 为什么VS没有提供平win64程序编写项
  8. exec,eval
  9. Swift : missing argument label 'xxx' in call
  10. git放弃本地commit,未push