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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python内置函数OCT详解
Nov 09 Python
Python实现类的创建与使用方法示例
Jul 25 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
虚拟机下载python是否需要联网
Jul 27 Python
Python实现弹球小游戏
Aug 01 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
Django restful framework生成API文档过程详解
Nov 12 Python
Python urllib request模块发送请求实现过程解析
Dec 10 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP面向对象分析设计的经验原则
2008/09/20 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
javascript实现全角与半角字符的转换
2015/01/07 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
Bootstrap插件全集
2016/07/18 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python调用windows api锁定计算机示例
2014/04/17 Python
python实现进程间通信简单实例
2014/07/23 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
Python队列的定义与使用方法示例
2017/06/24 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
Linux中如何用命令创建目录
2016/12/02 面试题
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
培训讲师邀请函
2014/01/10 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
简爱读书笔记
2015/06/26 职场文书
护士岗位竞聘书
2015/09/15 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
小程序实现侧滑删除功能
2022/06/25 Javascript