CentOS更新Python版本,同时修复yum不能使用的问题
转自:Li_Hanx博客
遇到问题,需要更新python,网上找了好多都不能顺利更新,找到这位大佬的这篇博客,写的非常好,分享给大家。
发现一个新办法,那就是直接安装另一个版本的Python,比如Python3.5吧,然后把可执行文件命名为Python3,添加到环境变量里,这样在终端中输入Python3,就可以调用3.5版本的解释器了,而且不会影响系统自带的版本,比升级要方便的多。执意要升级的话,那就用下面的方法升级吧...
---------------------------------------------------------------
最近刚刚接触CentOS,在更新Python的过程中遇到很多问题,网上的很多教程写得不太适合我这个小白。经过多次尝试,也参考了很多教程之后,我终于找到了合适的方法,于是总结下来,希望可以帮到像我一样的初学者朋友们。
1.查看一下当前Python的版本
$ python -V
注意这里“V”是大写的,记得当前python的版本,之后会用得到。我的当前版本是2.6.6。
2.安装过程中需要拥有root权限,所以在一开始就获取root
$ su root
注意这里执行命令后提示输入密码,但是输入过程中,密码是不显示的,所以只需要键盘敲完密码回车就可以了
3.安装过程中还有可能会提示安装编译器,所以也提前下载安装好,以免后面报错
$ yum install gcc gcc-c++ autoconf automake
4.安装相关库文件
$ yum install -y zlib-devel bzip2-devel xz-libs wget
这里的库文件,不同的教程写的有差异,我在这里安装了zlib-devel、bzip2-devel、xz-libs这三个,目前为止没有出现其他问题
5.下载目标版本Python安装包
$ wget http://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
我更新的是2.7.12版本,这里可以先到官网上看自己想用哪个版本,替换一下链接中的版本号就可以了
6.解压Python安装包
$ tar -xvf Python-2.7.12.tar.xz #解压安装包
这里注意文件名不要打错,执行命令后等待解压就可以了
7.进入解压后的目录
$ cd Python-2.7.12 #进入解压目录
文件夹的名字和压缩包的名字是一样的
8.指定安装路径
$ ./configure --prefix=/usr/local #将安装目录指定为/usr/local
9.编译并安装
$ make && make altinstall
这里有些教程是分开两步的,对比参考网上找到的教程,最后选择这个一行命令解决
10.移动旧版本Python(备份)
$ mv /usr/bin/python /usr/bin/python2.6.6
这里有两个路径: /usr/bin/python 是原位置,/usr/bin/python2.6.6是目标位置,2.6.6版本后面还会用得到,所以备份一下
11.建立软链接
$ ln -s /usr/local/bin/python2.7 /usr/bin/python
这里是把我们安装在local目录中的python2.7放到/usr/bin/python路径下,这种方式并没有直接复制文件到目标目录下,而是类似于创建文件的快捷方式
12.安装结束 查看版本
$ python -V
这里可以看到版本已经是2.7.12了,不过还没有结束,之前我们用到的yum,现在已经不能用了,因为更新了python版本,而yum与新版本python是不匹配的,所以接下来我们要再把yum改成对应到原来的版本,我这里自带的版本是2.6.6,下面完成修改
13.打开yum文件
$ vi /usr/bin/yum
这里我们在终端里打开yum文件,但是现在的状态只能浏览,下面继续编辑
14.修改yum文件
将光标移至首行末尾,按“a”键,可以看到终端左下角出现--insert--字样,此时就可以插入内容了,将首行原来的#!usr/bin/python改为:
#!/usr/bin/python2.6.6
然后按ESC退出编辑模式,注意这时候还没有保存。这里由于我将原来的2.6.6版本从/usr/bin/python移动到了/usr/bin/python2.6.6所以这样修改,如果移动到了其他位置,就要写对应的路径。
15.保存并退出
:wq
按ESC退出编辑模式后,无视光标当前的位置,直接输入":wq",就完成保存并退出了,此时yum就可以继续正常使用了。
昨天第一次用CentOS6.7,从网上查了很多教程,步骤都多多少少会出现一些问题,我用虚拟机试验了N遍+真机N遍+重装1次系统之后,终于找到了这个顺畅升级Python的流程,希望对其他像我这样刚刚接触Linux的入门级程序员有所帮助。另外,虚拟机是个好东西,随便实验,不行就删掉重来,简直不要太爽。安装VMware,在虚拟机下安装运行Linux的步骤网上有很多,都比较完善,我就不再赘述了。
如有错误,欢迎指正。
CentOS更新Python版本,同时修复yum不能使用的问题的更多相关文章
- CentOS更换python版本后,yum不可用的问题
因为yum调用了python,他的启动程序/usr/bin/yum就是一个python脚本 yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本 将 ...
- linux下面升级 Python版本并修改yum属性信息
最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...
- CentOS下更新python版本
执行#Python或#python -V或#python --version,看到版本号是2.7.5,到官网https://www.python.org/ftp/python/查看了下最新版本都到了2 ...
- centos 更新python
1.CentOS安装Python的依赖包 yum groupinstall "Development tools"yum install zlib-devel bzip2-deve ...
- liunx CentOS 升级Python版本
CentOS python版本是V2.6.6,升级3.4.3. 1.下载 安装包:wget http://www.python.org/ftp/python/3.4.3/Python-3.4.3.tg ...
- centos7升级Python版本后,yum不能正常使用
python升级方法,使用源码编译安装即可,prefix=/usr/local/bin/python3 执行yum list,提示/usr/bin/yum 报错 我是直接在Python2.7的基础上又 ...
- debian6 更新python版本到python3.3
1.下载python3.3安装包 #wget wget --no-cookie --no-check-certificate --header "Cookie:gpw_e24=http%3A ...
- CentOs系统设置python版本
一.针对当前终端生效 最近云服务器安装了centos7系统,python默认版本是2.7.5,但是习惯用anaconda3, 安装anaconda3之后将系统默认python版本更改为python3. ...
- linux多个python版本下导致yum报错
问题: $ yum File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid ...
随机推荐
- Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库
一.属性标签与规则设置 当进入网站页面,将会读数据库返回信息到视图上.那么,现在定义模型中的属性在视图标签上的显示, 也就是模型属性到前台标签的映射 // 定义模型属性到前台标签的映射 public ...
- monkey测试===如何获取android app的Activity
方法一(推荐): 手机连接adb,手机界面在需要取得activity的界面. 推荐使用该命令: adb shell dumpsys activity top | findstr ACTIVITY 获取 ...
- 2017多校第7场 HDU 6128 Inverse of sum 推公式或者二次剩余
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6128 题意:给你n个数,问你有多少对i,j,满足i<j,并且1/(ai+aj)=1/ai+1/a ...
- 关于IE8版本提示“不支持‘trim’此属性或者方法”的解决办法。转摘雨网络
在js文件的前面加 String.prototype.trim = function () { return Trim(this); }; function LTrim(str) { var i; f ...
- 流程控制--while
/* while 是在有条件控制的情况下 进行的循环 */ [root@localhost test1]# vim .py //ADD #!/usr/bin/python n = while True ...
- C/C++——[01] 程序的基本框架
我们以HelloWorld这个简单程序为例,该程序在终端打印一行文本: Hello World! 代码如下: #include <stdio.h> int main(){ printf(& ...
- leetcode 之Linked List Cycle(24)
两个思路,一是用哈希表记录每个结点是还被访问过:二是定义两个快.慢指针,如果存在环的话,两个指针必定会在某位结点相遇. bool linkListNode(ListNode *head) { List ...
- java中的抽象方法与抽象类
在继承时,会遇到一个问题.如果很多子类都要继承父类的一个方法,但是实现的逻辑都不一样. 这时候父类只提供了方法名,但是没有具体的方法体. 例如,男孩类和女孩类都继承人类这一个父类.人类有爱好这个方法, ...
- UVA - 315
B - Network Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description A ...
- LeetCode解题报告—— 4Sum & Remove Nth Node From End of List & Generate Parentheses
1. 4Sum Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + ...