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的Tornado框架实现数据可视化的教程
May 02 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
Python程序中的观察者模式结构编写示例
May 27 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
python中的随机函数小结
Jan 27 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
pandas删除指定行详解
Apr 04 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
Feb 28 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 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
第十一节--重载
2006/11/16 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
php文档更新介绍
2011/07/22 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
建筑专业自荐信
2013/10/18 职场文书
双十佳事迹材料
2014/01/29 职场文书
晨会主持词
2014/03/17 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
python正则表达式re.search()的基本使用教程
2021/05/21 Python
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技