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使用win32com在百度空间插入html元素示例
Feb 20 Python
Python中的进程分支fork和exec详解
Apr 11 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
python从sqlite读取并显示数据的方法
May 08 Python
Django中Forms的使用代码解析
Feb 10 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
python学生信息管理系统(初级版)
Oct 17 Python
Python 从相对路径下import的方法
Dec 04 Python
python把1变成01的步骤总结
Feb 27 Python
Django CBV类的用法详解
Jul 26 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
Python如何用filter函数筛选数据
Mar 05 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
xml+php动态载入与分页
2006/10/09 PHP
dedecms系统常用术语汇总
2007/04/03 PHP
php 正则 过滤html 的超链接
2009/06/02 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP7新特性
2021/03/09 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
python实现求特征选择的信息增益
2018/12/18 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
python 实现dict转json并保存文件
2019/12/05 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
环保建议书作文
2014/03/12 职场文书
《风筝》教学反思
2014/04/10 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
2014年终工作总结范本
2014/12/15 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
《去年的树》教学反思
2016/02/18 职场文书
图解上海144收音机
2021/04/22 无线电
总结高并发下Nginx性能如何优化
2021/11/01 Servers