python自动化脚本安装指定版本python环境详解


Posted in Python onSeptember 14, 2017

一般情况下编译安装python环境需要执行以下步骤:

  • 下载源码包
  • 解压源码包
  • 安装配置
  • 编译以及编译安装

TALK IS CHEAP, SHOW YOU MY CODE.

#!/usr/bin/python
#coding:utf-8
'''
date:9/2/17 18:03 PM
author:lockey
email:lockey@123.com
desc:python自动化安装用户指定版本的python环境
'''
#导入Python的系统编程操作模块
import os

#导入用来处理Python运行时配置以及资源,与前当程序之外的系统环境交互的模块
import sys

#判断当前用户是否是root用户
if os.getuid() == 0:
  pass
else:
  print 'Not under root mode, please switch user!'
  sys.exit(1)

#获取用户输入的python安装版本
version = raw_input('Please input wanted python version(2.7/3.6)')

#如果嫌官网下载速度太慢可以指定python3.6.2的链接地址为本人上传资源地址
#根据用户输入的python版本选择源码包下载地址
if version == '2.7':
  url = 'https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz'
elif version == '3.6':
  url = 'https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz'
else:
  print 'Please input given version number(2.7/3.5)'
  sys.exit(1)

#拼接源码包下载地址并执行下载命令
cmd = 'wget ' + url
res = os.system(cmd)
if res != 0 :
  print 'Failed to download python source package, please inspect your network!'
  sys.exit(1)

if version == '2.7':
  package_version = 'Python-2.7.13'
else:
  package_version = 'Python-3.6.2'

#解压下载的源码包
cmd = 'tar xf ' + package_version + '.tgz'
res = os.system(cmd)

#如果解压失败则删除下载的源码包并且提示用户重新执行脚本
if res != 0:
  os.system('rm ' + package_version + '.tgz')
  print 'Please reexcute the script to install python'
  sys.exit(1)

#解压成功则进入解压后的源码目录中依次执行配置、编译、安装过程
cmd = 'cd ' + package_version + ' && ./configure --prefix=/usr/local/python && make && make install'

res = os.system(cmd)

#安装失败则提示用户安装失败了,让用户检查环境依赖
if res != 0:
  print 'Failed to install python, please inspect dependencies for python install!'
  sys.exit(1)

程序运行测试截图:

1. 测试普通用户模式下运行安装脚本:

python自动化脚本安装指定版本python环境详解

2. 切换到root用户然后运行自动安装脚本:

python自动化脚本安装指定版本python环境详解

3. 脚本自动配置(./configure)完成,进入编译(make)阶段

python自动化脚本安装指定版本python环境详解

4. 脚本编译安装完成:

python自动化脚本安装指定版本python环境详解

5. 测试安装的python环境:

python自动化脚本安装指定版本python环境详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python统计一个文本中重复行数的方法
Nov 19 Python
python输出指定月份日历的方法
Apr 23 Python
在Python中使用成员运算符的示例
May 13 Python
python实现ping的方法
Jul 06 Python
Python中二维列表如何获取子区域元素的组成
Jan 19 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
python编程使用协程并发的优缺点
Sep 20 Python
对django中render()与render_to_response()的区别详解
Oct 16 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
Django框架创建项目的方法入门教程
Nov 04 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
Feb 18 Python
python实现八大排序算法(2)
Sep 14 #Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 #Python
python实现八大排序算法(1)
Sep 14 #Python
python实现简单聊天应用 python群聊和点对点均实现
Sep 14 #Python
Python实现购物系统(示例讲解)
Sep 13 #Python
python模块之sys模块和序列化模块(实例讲解)
Sep 13 #Python
python模块之time模块(实例讲解)
Sep 13 #Python
You might like
PHPExcel简单读取excel文件示例
2016/05/26 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
2016/11/10 PHP
php实现 master-worker 守护多进程模式的实例代码
2019/07/20 PHP
php判断目录存在的简单方法
2019/09/26 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
python中reload(module)的用法示例详解
2017/09/15 Python
Python入门必须知道的11个知识点
2018/03/21 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
Python魔法方法功能与用法简介
2019/04/04 Python
Python简易版图书管理系统
2019/08/12 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
英国景点门票网站:attractiontix
2019/08/27 全球购物
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
反腐倡廉标语
2014/06/24 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
python 逐步回归算法
2021/04/06 Python
MySQL系列之三 基础篇
2021/07/02 MySQL
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript