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的框架中为MySQL实现restful接口的教程
Apr 08 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
Django 缓存配置Redis使用详解
Jul 23 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
Django框架之中间件MiddleWare的实现
Dec 30 Python
tensorflow 查看梯度方式
Feb 04 Python
Python3 搭建Qt5 环境的方法示例
Jul 16 Python
python设置中文界面实例方法
Oct 27 Python
python中os.remove()用法及注意事项
Jan 31 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
解析php file_exists无效的解决办法
2013/06/26 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php可变长参数处理函数详解
2017/02/22 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
JavaScript Split()方法
2015/12/18 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
php 修改密码实现代码
2017/05/24 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
Python计算三角函数之asin()方法的使用
2015/05/15 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
怎样写演讲稿
2014/01/04 职场文书
优秀体育委员自荐书
2014/01/31 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
给市场的环保建议书
2014/05/14 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
大学生村官入党自传
2015/06/26 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang
HTML基本元素标签介绍
2022/02/28 HTML / CSS
代码复现python目标检测yolo3详解预测
2022/05/06 Python