python自动化脚本安装指定版本python环境详解
作者:Lockeyi 发布时间:2022-08-14 11:31:46
标签:python,环境
一般情况下编译安装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. 测试普通用户模式下运行安装脚本:
2. 切换到root用户然后运行自动安装脚本:
3. 脚本自动配置(./configure)完成,进入编译(make)阶段
4. 脚本编译安装完成:
5. 测试安装的python环境:
来源:http://blog.csdn.net/lockey23/article/details/77802967


猜你喜欢
- 从Python3.2引入的concurrent.futures模块,Python2.5以上需要在pypi中安装futures包。future
- getatter()通过方法名字符串调用方法,这个方法最主要的作用就是实现反射机制,也就是说可以通过字符串获取方法实例,这样就可以把一个类可
- 最近做的一个B/S项目,在打印时采用了在IE中嵌入.net winform控件和XML结合的方式(参见http://www.yesky.co
- 使用pip安装Django时报错,先是:C:\Users\admin>pip install django Collecting dj
- 1、同级目录下调用若在程序 testone.py 中导入模块 testtwo.py , 则直接使用【import testtwo 或 fro
- 本文实例讲述了python实现的简单文本类游戏实现方法。分享给大家供大家参考。具体实现方法如下:######################
- 关于SQL查询效率,100w数据,查询只要1秒,与您分享:机器情况:p4: 2.4内存: 1 Gos: windows 2003数据库:SQ
- 创建索引:MySql创建索引的语法如下:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
- 一、安装首先根据自己的python版本下载pyqt4离线包,现在连接:https://www.lfd.uci.edu/~gohlke/pyt
- 1,CSS,JS,IMG一个都不能少运行代码框<style type="text/css">&l
- 代码如下:declare @Q_ID uniqueidentifier set @Q_ID = dbo.uf_GetParamValueBy
- 前言内存映射通常可以提高I/O的性能,因为使用内存映射时,不需要对每个访问都建立一个单独的系统调用,也不需要在缓冲区之间复制数据,内核和用户
- 全文检索里的组件简介1. 什么是haystack?1. haystack是django的开源搜索框架,该框架支持Solr,Elasticse
- enumerate首先介绍的是enumerate函数。在我们日常编程的过程当中,经常会遇到一个问题。在C语言以及一些古老的语言当中是没有迭代
- 1、Bootstrap-table使用github:https://github.com/wenzhixin/bootstrap-table
- go for range 遍历二维数组var arry [2][3] intfor index,_ := range arry {fmt.P
- 首先看middleware的定义:auth模块有两个middleware:AuthenticationMiddleware和SessionA
- 今天我发现这个结论是错误的。但是为了方便理解,我仍然不建议大家在不熟悉sql语句时,把里面的约束跟外面的约束混为一谈。从可读性方面来说,可以
- 人们常说人生就是一个不断做选择题的过程:有的人没得选,只有一条路能走;有的人好一点,可以二选一;有些能力好或者家境好的人,可以有更多的选择;
- Python读取YUV格式文件,并使用opencv显示的方法opencv可以读取的图片类型比较多,但大多是比较常见的类型,比如".