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笔记(叁)继续学习
Oct 24 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
Python简单实现查找一个字符串中最长不重复子串的方法
Mar 26 Python
python 获取当天每个准点时间戳的实例
May 22 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
Python常用特殊方法实例总结
Mar 22 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
next在python中返回迭代器的实例方法
Dec 15 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
让Python代码更快运行的5种方法
2015/06/21 Python
python读文件保存到字典,修改字典并写入新文件的实例
2018/04/23 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
场地使用证明模板
2014/10/25 职场文书
锅炉工岗位职责
2015/02/13 职场文书
开除员工通知
2015/04/22 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
毕业典礼致辞
2015/07/29 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书