博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一键升级python
阅读量:2338 次
发布时间:2019-05-10

本文共 1740 字,大约阅读时间需要 5 分钟。

郑重声明如有雷同纯属巧合,本人自学的没有任何编程经验 ,写的不好 随便喷 。废话不多说,直接上代码。

实验环境:

Cent  OS 6.5

python 2.6.6(系统默认的)

目前提供安装的版本是2.7.8或者3.5.2

#!/usr/bin/python

#coding=utf-8
import os
import sys
if os.getuid() == 0:
    pass
else:
    print'当前用户不是root用户,请以root用户脚本执行'

    sys.exit()

print '++++++++++++++++准备工作:配置本地YUM源+++++++++++++++++++'
cmd = os.path.exists('/media/cdrom/')
if cmd != True:
    cmd = 'mkdir /media/cdrom'
    os.system(cmd)
    print '目录创建完毕!!!'
else:
    print '目录已经有,无需创建!!!'
print '++++++++++++++++安装所需的依赖包++++++++++++++++++++++++'
print '请把光盘放入光驱内'
cmd = 'mount /dev/cdrom /media/cdrom/'
os.system(cmd)
cmd = 'yum install -y openssl** openssl-devel readline-devel zlib-devel gcc* -y'
os.system(cmd)
print '+++++++++++++++依赖包安装成功+++++++++++++++++++++++++++'

list_file = os.listdir('.')
print list_file
version = raw_input('请输入你想安装的python版本(2.7.8/3.5.2)')
package_name = 'Python-'+version
print package_name
if version == '2.7.8':
    url = 'wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
elif version == '3.5.2':
    url = 'wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz'
else:
    print '你输入的版本号有误,请核对后重新输入!!!'
    sys.exit(1)
cmd = 'tar -zxf '+package_name+'.tgz'+'&& cd '+package_name+'&& ./configure && make && make install'
command = 'mv /usr/bin/python /usr/bin/python2.6 && ln -s /usr/local/bin/python2.7 /usr/bin/python '+'&& sed -i '+'s/pyhton/pyhton2.6/g'+' /usr/bin/yum'
if package_name+'.tgz' in list_file:
    print '当前目录有了安装包了不用下载了,正在安装请稍等..........'
    os.system(cmd)
    os.system(command)
    print '恭喜你升级到'+package_name
    
elif package_name+'.tgz' not in list_file:
    print '正在下载安装包,准备安装!!!'
    os.system(url)
    print '下载完成,正在安装.......................'
    os.system(cmd)
    os.system(command)
    print '恭喜你升级到'+package_name
    res = os.system(url)
    if res != 0:
        print '下载失败,请检查网络'

转载地址:http://kugpb.baihongyu.com/

你可能感兴趣的文章
在Go中表示枚举的惯用方法是什么?
查看>>
如何在本地运行travis-ci
查看>>
模板中关键字“ typename”和“ class”的区别?
查看>>
在React中显示或隐藏元素
查看>>
暂存已删除的文件
查看>>
为什么需要在脚本文件的开头加上#!/ bin / bash?
查看>>
ReactJS-每次调用“ setState”时都会调用渲染吗?
查看>>
如何在Ubuntu上安装Boost
查看>>
如何在变更事件中使用广播?
查看>>
如何解决错误:使用nodejs时监听EADDRINUSE?
查看>>
如何检查批处理文件中是否存在文件[重复]
查看>>
抛出异常的Java 8 Lambda函数?
查看>>
状态栏和导航栏显示在iOS 7中我视图的边界上
查看>>
backbone.js的目的是什么?
查看>>
instanceof和Class.isAssignableFrom(...)有什么区别?
查看>>
使用AngularJS的ng-options使用select
查看>>
解析JSON时出现“意外令牌o”错误[重复]
查看>>
如何在PHP中获取文件扩展名? [重复]
查看>>
Scalaz迭代:“提升”`EnumeratorT`以匹配`IterateeT`为“更大”的monad
查看>>
我应该如何在OSX上设置JAVA_HOME
查看>>