一 功能需求
1 下载Python的源码
2 安装Python需要的依赖库
3 编译安装Python
二 伪代码版本
三 主要函数讲解
1 os.system
功能:执行命令
返回:命令的返回值
补充:命令的输出会输出到标准输出
2 raw_input()
功能:暂停程序运行,等待用户输入
返回:用户输入的内容
四 实战
1 代码
#coding=utf-8
import os
import sys
if os.getuid() == 0:
pass
else:
print '当前用户不是root用户,请以root用户执行脚本'
sys.exit(1)
version = raw_input('请输入你想安装的python版本(2.7/3.6)')
if version == '2.7':
url = 'https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz'
elif version == '3.6':
url = 'https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz'
else:
print '您输入的版本号有误,请输入输入2.7或3.6'
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.12'
else:
package_name = 'Python-3.6.8'
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)
2 运行
[root@centos python]# python install_python.py
请输入你想安装的python版本(2.7/3.6)3.5
您输入的版本号有误,请输入输入2.7或3.6
五 自动化运维缺点
1 数据无法共享
2 无法主动发现问题
3 部署成本高
4 标准不统一
六 云运维简介
1 资源数据共享
2 主动发现问题
3 统一标准
4 成本低