最近一段时间shell脚本写得很溜,很有成就感,一想到被自己落下的Python就感到十分心虚。开始坚持学习Python!先将自己的测试机器的Python升级到Python 3.6.6。简单整理、记录一下!

 

1:检查当前Linux版本&Python版本信息

# more /etc/redhat-release 

Red Hat Enterprise Linux Server release 6.6 (Santiago)

 

# python -V

Python 2.6.6

2:下载、解压Python安装包

注意官方网址提供各个版本,以及不同压缩格式的安装包,选择合适自己的即可。如果Linux不能访问外网,也可以手工下载上传。此处略过!

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

#tar -xzvf Python-3.6.6.tgz 

3:编译安装Python 3.6.6

#cd Python-3.6.6

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

# make 

# make install  或者  make altinstall

# make clean

注释:

./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本

make 是用来编译的,它从Makefile中读取指令,然后编译。

make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

make clean:清除编译产生的可执行文件及目标文件(object file,*.o)。

注意make install 与 make altinstall的区别:

install 除了做 altinstall 外还会做 bininstall , maninstall 共三个动作bininstall 就是在处理 Symbolic Link Chain 的相关事务, 而 maninstall 则是在产生 unversioned manual pages, 所以, 很明显的, 不使用 bininstall 可以避免 python install 时 update link 的问题。如果使用make install,你将会看到在系统中有两个不同版本的Python在/usr/bin/目录中。这将会导致很多问题,而且不好处理。

4:验证是否升级成功

 

# python -V

Python 2.6.6

# /usr/local/bin/python3.6 -V

Python 3.6.6

5:设置环境变量

 

# mv /usr/bin/python    /usr/bin/python.bak

# ln -s /usr/local/bin/python3.6 /usr/bin/python

# python -V

Python 3.6.6

6配置yum

如下所示,升级 Python 之后,由于将默认的python指向了python 3。6,yum不能正常使用,需要编辑 yum 的配置文件

yum clean

File "/usr/bin/yum", line 30

except KeyboardInterrupt, e:

^

SyntaxError: invalid syntax

编辑vim /usr/bin/yum 配置文件,将第一行记录#!/usr/bin/python改为#!/usr/bin/python2.6

最新文章

  1. ASP.NET 身份认证
  2. ORM框架
  3. Tomcat Manager 用户名和密码配置
  4. Java I/O 文件加锁,压缩
  5. Careercup - Facebook面试题 - 4909367207919616
  6. 设计模式------Adapter(适配器)
  7. C++学习笔记6——类的多态
  8. iOS-桥接方式
  9. 使用Entity Framework时遇到的问题
  10. ip 淘宝ip库 精简版
  11. Paxos协议超级详细解释+简单实例
  12. java线程的学习
  13. RSA简介
  14. MinFilter(MaxFilter)快速算法C++实现
  15. Java集合整理
  16. Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xde如何使用
  17. 防止一个exe被打开多次
  18. java并发编程实战:第四章----对象的组合
  19. 杨辉三角之c实现任意行输出
  20. python---Celery分布式任务队列了解

热门文章

  1. [Swift]LeetCode515. 在每个树行中找最大值 | Find Largest Value in Each Tree Row
  2. [Swift]LeetCode792. 匹配子序列的单词数 | Number of Matching Subsequences
  3. Kubernetes系列之监控Metres-server实战篇
  4. Redis哨兵
  5. 使用ML.NET实现基于RFM模型的客户价值分析
  6. 实现无缝兼容ajax/websocket网页应用和服务
  7. Java开发知识之Java入门
  8. Service Worker MDN英文笔记
  9. BlockingQueue 阻塞队列实现异步事件
  10. C指针和数组的关系详解