linux 升级python2.7
linux为centos6,系统默认安装了python2.6,需要执行的python脚本内容包含标准库之xml.etree.ElementTree 用到库里的一个iter方法是python2.7的新特性,所以需要升级到python2.7
1、升级前的准备:
rpm -qa | grep zlib 查看是否有zlib和zlib-devel两个模块。如下:

实际一般会缺少zlib-devel模块,最好能上网,使用yum安装
yum -y install zlib-devel
如果不能上网,需要自己下载和zlib模块版本匹配的rpm包。
(!!!如果先升级python2.7, 后面在安装setuptools时会报zlip模块缺失,还需要重新安装编译python2.7,还需要修改yum 。详见最后!!!)
!!还会缺少openssl-devel模块,yum -y install openssl-devel 如果不先安装的话,后面使用pip会报错,还要重新编译python,详见 pip安装
*-devel开发包中主要包括一些头文件和静态链接库,往往是其他模块在编译时,需要依赖这些*-devel软件包。
通常,如果用系统自带的包,-devel包是不用安装的,如果自己编译安装软件,依赖的库就需要安装devel的包了。这里setuptools依赖zlib-devel;pip依赖openssl-devel;
2、升级python2.7
wget python2.7地址(或者手动下载安装包)
tar zxvf xxx.tar.gz
./configure
(会在目录下面生成makefile文件,这个makefile主要是为make使用)
make &&make install
make:编译源代码,生成执行文件
make install:把生成的可执行文件,拷贝到系统目录下
3、替换旧的python:
第一步:mv /usr/bin/python /usr/bin/python2.6
//对系统默认版本python进行操作 /usr/bin/python默认是python解释器 mv是剪切命令
第二步:ln -s /usr/local/bin/python2.7 /usr/bin/python
指向新版本python,ln -s 源文件 目标文件 。ln -s是软连接,相到于创建了快捷方式,/usr/bin/python就是快捷方式。
注意第一个路径是新安装的python版本路径,而第二个路径是系统默认路径
/usr/bin 和/usr/local/bin 之间的区别在于:usr/bin里面存的是系统自带的一些应用程序的打开方式,而 /usr/local/bin存的应该是用户自己安装的应用程序
第三步:验证是否生效,查看当前Python版本

which pyhton 查看的是当前python的路径:
升级前:/usr/bin/python 系统默认安装
升级2.7 切换后:/usr/local/bin/python 自己安装的
4、安装setuptools
如果想安装第三方模块,需要先安装setuptools
安装setuptools的过程如下:
1、下载setuptools wget方式或者自己下载
2、解压 tar zxvf setuptools.tar.gz
3、进入setuptools安装目录,编译和安装
python setup.py build
python setup.py install
5、安装第三方模块
setuptools安装完成后,就可以下载第三方模块安装了
tar -zxvf xxx.tar.gz
进入解压缩目录,python setup.py install
6、安装pip:
安装完pip模块后,在线安装第三方模块

rpm -qa | grep ssl 查看一下,发现缺少ssl-devel模块
安装ssl-devel : yum -y install openssl-devel
安装完成后,重新编译python 。make&&make install
到此 ,pip就可以成功使用了,就可以很爽的在线安装第三方模块啦!!
PS:安装过程中遇到的问题
一:如果升级前没有先安装zlib-devel模块,执行 python setup.py install 会报错:Compression requires the (missing) zlib,说明没有zlib模块

问题解决:
1、rpm -qa | grep zlib 查看
系统只有zlip模块:zlib-1.2.3-29.el6.i686
2、还缺少zlib-devel模块,直接百度搜索zlib-devel-1.2.3-29.el6.i686.rpm
rpm -ivh zlib-devel-1.2.3-29.el6.i686.rpm
安装完成后,rpm -qa | grep zlib ,就能看到zlib和zlib-devel两个模块

3、进入python2.7目录,重新安装编译 make&&make install
4、进入setuptools目录,python setup.py install, 重新安装成功
二:升级到2.7后yum不能使用
比如上面,需要安装zlib,使用yum 安装最方便。但是会发现yum 不兼容python2.7

问题解决:

三:python脚本开头需要添加:#!/usr/bin/python
linux 升级python2.7的更多相关文章
- linux升级python2.7到3.7.0
1.下载python3.7.0压缩包在 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 2.解压缩 tar -zxvf Py ...
- Linux下Python2升级Python3
Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...
- CentOS6.x 安装升级Python2.7.x Python3.4.x
CentOS6.x 安装升级Python2.7.x Python3.4.x 2015-06-07• CentOS.Linux • 评论关闭 CentOS release 6.6 (Final) 安装升 ...
- 装python package 时,conda提示会升级python2到python3,那可能是你的windows不支持py2env下的此包。
装python package 时,conda提示会升级python2到python3, 那可能是你的windows不支持py2env下的此包.比如:win 下,tensorflow就不支持py2的环 ...
- Linux安装python2.7、pip和setuptools
一.说明 CentOS6.5自带python环境为2.6,公司的python环境为2.7. 为了避免出现以后代码出现版本差异,所以把自带的2 .6版本升级到了2.7,过程十分曲折.... 中途遇到的问 ...
- linux升级mysql到5.7
原文:http://blog.csdn.net/qing_gee/article/details/41774265 Linux升级MySQL版本到5.7. 1.下载Linux的5.7版本,主要需要两个 ...
- 【转】Mac下升级python2.7到python3.6
1. 前言 Mac系统自带python2.7,本文目的是将自带的python升级到3.6版本. 网上有本多的做法是让python2.7和python3.X两个版本共存,博主并不知道,是两版本共存好,还 ...
- CentOS6升级Python2.6到3.7,错误处理[No module named '_ctypes']
CentOS6升级Python2.6到3.7,错误处理[No module named '_ctypes'] 因开发需要,在CentOS 6 服务器将Python2进行升级到Python3.由于工作中 ...
- 【转载】Linux升级NTPD服务器-编译安装ntp-4.2.8p12与配置
[转载]Linux升级NTPD服务器-编译安装ntp-4.2.8p12与配置 1. 系统与软件版本 1.1 系统版本 rhel6.4(Red Hat Enterprise Linux Server r ...
随机推荐
- 关于 HTTP
HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议).它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的 ...
- [转] Android中的设计模式-备忘录模式
转自Android中的设计模式-备忘录模式 定义 备忘录设计模式的定义就是把对象的状态记录和管理委托给外界处理,用以维持自己的封闭性. 比较官方的定义 备忘录模式(Memento Pattern)又叫 ...
- EventBus用法
什么是EventBus EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信.比如请求网络,等网络返回时通过Hand ...
- c#调用带输出参数的存储过程
sql server中编写一个存储过程: CREATE PROCEDURE ProGetPWD @username varchar(20), @password varchar(20) OUTPUT ...
- js检查字符串的包含关系
首先想到的是str.contains(),用的时候发现报错了 正确的判断方法应该用:str.indexof(substring),不包含的话,返回-1.大小写敏感 var rsp = response ...
- Spring Cloud Config中文文档
https://springcloud.cc/spring-cloud-config.html 目录 快速开始 客户端使用 Spring Cloud Config服务器 环境库 健康指标 安全 加密和 ...
- 如何玩转小程序+公众号?手把手教你JeeWx小程序CMS与公众号关联
随着微信小程序新功能.新入口的不断更新,小程序的商业价值逐步增强,特别是小程序与公众号的深度融合,已经让小程序成为各行业新的营销渠道.Jeewx平台专注小程序的开发,逐步完善小程序生态圈,通过简单操作 ...
- math模块
序号 方法 功能 示例 1 matd.ceil 取大于等于x的最小的整数值,如果x是一个整数,则返回x print(matd.ceil(10.1))# 11print(matd.ceil(-3.1)) ...
- JSONArray 遍历
JSONArray 遍历 刚遇到一个接接口任务,发现其中返回数据中,是个字符串数组,数组中就是单个json形式的内容,其实应该也可以称这种数据叫做json数组吧,只不过是字符串形式.而我需要的是将 ...
- copyOnWriteArray 并发包下的不安全(数组)集合
copyOnWriteArray 记录一下 package java.util.concurrent;//你没有看错,是这个包 private transient volatile Object[] ...