python自动化脚本安装指定版本python环境详解

作者:Lockeyi 时间:2022-08-14 11:31:46 

一般情况下编译安装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环境详解

来源:http://blog.csdn.net/lockey23/article/details/77802967

标签:python,环境
0
投稿

猜你喜欢

  • Python 爬虫学习笔记之单线程爬虫

    2021-09-23 10:47:27
  • Python如何读写JSON格式数据

    2022-05-20 17:42:05
  • js阻止移动端页面滚动的两种方法

    2023-08-04 17:36:12
  • Python脚本实现格式化css文件

    2023-01-09 19:00:37
  • Python实现GPU加速的基本操作

    2021-07-30 05:10:34
  • PHP正则匹配到2个字符串之间的内容方法

    2024-05-11 10:12:18
  • 手把手教你制作Google Sitemap

    2008-09-04 10:35:00
  • Python实现TCP协议下的端口映射功能的脚本程序示例

    2021-07-26 13:59:01
  • spark编程python实例解读

    2023-06-02 06:12:52
  • 利用Python和OpenCV库将URL转换为OpenCV格式的方法

    2021-08-10 13:41:43
  • python实现Zabbix-API监控

    2022-04-23 17:41:00
  • python中的字典详细介绍

    2021-06-08 23:10:41
  • js显示世界时间示例(包括世界各大城市)

    2024-04-10 13:54:37
  • 5个有效改进网页UI设计的技巧

    2008-12-19 12:04:00
  • js和jquery判断数据类型的4种方法总结

    2023-08-25 08:49:18
  • Python实现扫码工具的示例代码

    2022-07-06 06:06:36
  • ubuntu下磁盘空间不足导致mysql无法启动的解决方法

    2024-01-26 00:56:44
  • JS字符串转GBK编码超精简实现详解

    2024-04-28 09:43:13
  • 详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决

    2021-08-28 15:42:10
  • 关于配置babel-plugin-import报错的坑及解决

    2023-07-02 16:39:01
  • asp之家 网络编程 m.aspxhome.com