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 django集成cas验证系统
Jul 14 Python
python读取文件名称生成list的方法
Apr 27 Python
Django 使用logging打印日志的实例
Apr 28 Python
django2.0扩展用户字段示例
Feb 13 Python
python获取点击的坐标画图形的方法
Jul 09 Python
python爬虫 urllib模块url编码处理详解
Aug 20 Python
Python类反射机制使用实例解析
Dec 30 Python
idea2020手动安装python插件的实现方法
Jul 17 Python
Python定义一个Actor任务
Jul 29 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 Python
python hmac模块验证客户端的合法性
Nov 07 Python
关于python中模块和重载的问题
Nov 02 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
星际RPG字典
2020/03/04 星际争霸
MYSQL环境变量设置方法
2007/01/15 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
php中fsockopen用法实例
2015/01/05 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
Yii2单元测试用法示例
2016/11/12 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
Vue学习之常用指令实例详解
2020/01/06 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
python实现感知机模型的示例
2020/09/30 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
.NET面试问题集
2015/12/08 面试题
小学生秋游活动方案
2014/02/23 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js