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下载FTP上的文件夹的实现代码
Feb 10 Python
Python使用代理抓取网站图片(多线程)
Mar 14 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
Python 实现数据结构中的的栈队列
May 16 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
通俗讲解python 装饰器
Sep 07 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 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
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php获取图片信息的方法详解
2015/12/10 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JS的数组迭代方法
2015/02/05 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
python中正则表达式的使用详解
2014/10/17 Python
pygame学习笔记(5):游戏精灵
2015/04/15 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
生产厂长岗位职责
2014/02/21 职场文书
一句话工作感言
2014/03/01 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
仓管员岗位职责
2015/02/03 职场文书
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers