本脚本所有信息:

1:判断是不是root用户,是则继续不是则退出脚本输出信息
2:定义自己的版本
3:根据用户输入的版本号,来下载对应的版本包
4:使用系统命令wget来下载,注意wet后面有一个空格
5:os.system执行系统命令
6:如果无法下载,大部分是因为网络问题,提示用户检查网络
7:判断相应的用户来根据这个版本进行相应的解压
8:如果解压失败的话,提示信息,退出程序
9:如果编译失败退出返回信息
10:移动老的Python版本
11:进行3.5软连接,如果失败则退出返回信息

#coding=utf-8

import os
import sys if os.getuid() == 0:
pass
else:
print("当前用户不是Root用户,请以Root用户执行脚本")
sys.exit(1) #version = rat_input('请输入您想安装的Python版本号(2.7/3.5):')
version = '3.5' if version == '2.7':
url = 'https://www.python.org/ftp/python/2.7/Python-2.7.tgz'
elif version == '3.5':
url = 'https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz'
else:
print("您输入的版本号有误,请输入2.7或者3.5")
sys.exit(1) cmd = 'wget '+url
res = os.system(cmd) if res != 0:
print('下载源码包失败,请检查当前网络')
sys.exit(1) if version == '2.7':
package_name = 'Python-2.7'
else:
package_name = 'Python-3.5.0' cmd = 'tar xf '+ package_name+ '.tgz'
res = os.system(cmd)
if res != 0:
os.system('rm '+package_name+'.tgz')
print('解压源码包失败,请重新运行这个脚本下载源码包')
sys.exit(1) cmd = 'cd ' + package_name+ '&& ./configure --prefix=/usr/local/python && make && make install'
res = os.system(cmd)
if res != 0:
print '编译Python失败'
sys.exit(1) cmd = 'mv /usr/bin/python /usr/bin/python_old'
res = os.system(cmd)
if res !=0:
print '移动失败,请手动移动(mv /usr/bin/python /usr/bin/python_old)'
sys.exit(1) cmd = 'ln -s /usr/local/python/bin/python3.5 /usr/bin/python'
res = os.system(cmd)
if res != 0:
print '软连接失败,请手动软连(ln -s /usr/local/python/bin/python3.5 /usr/bin/python)'
sys.exit(1) cmd = "sed -i 's/python/python_old/g' /usr/bin/yum"
res = os.system(cmd)
if res != 0:
print '修改失败,请手动修改文件内容:/usr/bin/yum - > #!/usr/bin/python 替换成 #!/usr/bin/python_old'
sys.exit(1) cmd = "sed -i 's/python/python_old/g' /usr/libexec/urlgrabber-ext-down"
res = os.system(cmd)
if res != 0:
print '修改失败,请手动修改文件内容:/usr/libexec/urlgrabber-ext-down - > #!/usr/bin/python 替换成 #!/usr/bin/python_old'
sys.exit(1)

执行完成之后,查看版本是否是Python3.5. 如果是则安装成功。

最新文章

  1. Linux上安装oracle客户端及sqlldr
  2. 转:shell杀死指定名称的进程
  3. 暑假热身 D. 条形码设计
  4. Objective-C:Foundation框架-常用类-NSObject
  5. delphi中locate方法
  6. spring <context:component-scan>(转)
  7. PHPUnit测试
  8. Wind River Linux 6 Security Profile
  9. C# 委托高级应用----线程——创建无阻塞的异步调用(一)
  10. Ubuntu一些常用的软件安装及配置
  11. windows docker redis
  12. DRF 缓存解决方案 drf-extensions / redis
  13. Vue簡介
  14. PHPStorm配置Xdebug官方文档
  15. HTML5 学习08——Input 类型、表单元素及属性
  16. BioConda--转载
  17. solr(四) : springboot 整合 solr
  18. jquery 回车事件实现代码
  19. 解题:洛谷2257 YY的GCD
  20. select函数的并发限制和 poll 函数应用举例

热门文章

  1. 解决表单GET提交后台数据乱码问题
  2. 多线程设计模式(一) Single Threaded Execution
  3. 纯js实现省市级联效果
  4. Java版本更新历史(ing)
  5. ubuntu熟悉过程中遇到一些小问题记录一下
  6. Python: PS 滤镜--表面模糊
  7. python获取系统信息psutil
  8. python 基础之第四天
  9. C++之remove和remove_if
  10. 深入攻克c语言--day04