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进行一些简单的自然语言处理的教程
Mar 31 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
查看django版本的方法分享
May 14 Python
Python如何实现转换URL详解
Jul 02 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
Python实现企业微信机器人每天定时发消息实例
Feb 25 Python
python实现信号时域统计特征提取代码
Feb 26 Python
Python日志器使用方法及原理解析
Sep 27 Python
Python之字典添加元素的几种方法
Sep 30 Python
python urllib和urllib3知识点总结
Feb 08 Python
python爬虫scrapy基本使用超详细教程
Feb 20 Python
实战Python爬虫爬取酷我音乐
Apr 11 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
博士208HAF收音机实习报告
2021/03/02 无线电
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
python自定义解析简单xml格式文件的方法
2015/05/11 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
python多维数组切片方法
2018/04/13 Python
利用python修改json文件的value方法
2018/12/31 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
Python如何用filter函数筛选数据
2020/03/05 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
大学四年规划书范文
2013/12/27 职场文书
黄金搭档广告词
2014/03/21 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
学校运动会广播稿
2014/10/11 职场文书
花田少年史观后感
2015/06/16 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
python和anaconda的区别
2022/05/06 Python
python如何为list实现find方法
2022/05/30 Python