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的更多相关文章

  1. 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 ...

  2. Linux下Python2升级Python3

    Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...

  3. 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) 安装升 ...

  4. 装python package 时,conda提示会升级python2到python3,那可能是你的windows不支持py2env下的此包。

    装python package 时,conda提示会升级python2到python3, 那可能是你的windows不支持py2env下的此包.比如:win 下,tensorflow就不支持py2的环 ...

  5. Linux安装python2.7、pip和setuptools

    一.说明 CentOS6.5自带python环境为2.6,公司的python环境为2.7. 为了避免出现以后代码出现版本差异,所以把自带的2 .6版本升级到了2.7,过程十分曲折.... 中途遇到的问 ...

  6. linux升级mysql到5.7

    原文:http://blog.csdn.net/qing_gee/article/details/41774265 Linux升级MySQL版本到5.7. 1.下载Linux的5.7版本,主要需要两个 ...

  7. 【转】Mac下升级python2.7到python3.6

    1. 前言 Mac系统自带python2.7,本文目的是将自带的python升级到3.6版本. 网上有本多的做法是让python2.7和python3.X两个版本共存,博主并不知道,是两版本共存好,还 ...

  8. CentOS6升级Python2.6到3.7,错误处理[No module named '_ctypes']

    CentOS6升级Python2.6到3.7,错误处理[No module named '_ctypes'] 因开发需要,在CentOS 6 服务器将Python2进行升级到Python3.由于工作中 ...

  9. 【转载】Linux升级NTPD服务器-编译安装ntp-4.2.8p12与配置

    [转载]Linux升级NTPD服务器-编译安装ntp-4.2.8p12与配置 1. 系统与软件版本 1.1 系统版本 rhel6.4(Red Hat Enterprise Linux Server r ...

随机推荐

  1. 25.安装配置phantomjs

    1.官网下载windows版本:http://phantomjs.org/download.html2.下载完解压,将PhantomJS可执行文件配置到环境变量里.比如: 将 E:\Soft\soft ...

  2. postgresql----COPY之表与文件之间的拷贝

    postgresql提供了COPY命令用于表与文件(和标准输出,标准输入)之间的相互拷贝,copy to由表至文件,copy from由文件至表. 示例1.将整张表拷贝至标准输出 test=# cop ...

  3. scrapy中deferred的回调

    def _next_request_from_scheduler(self, spider):#在引擎中处理一个请求 slot = self.slot request = slot.scheduler ...

  4. leetcode970

    public class Solution { public IList<int> PowerfulIntegers(int x, int y, int bound) { var list ...

  5. <基础> PHP 数组操作

    array_filter — 用回调函数过滤数组中的单元 ( 如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中.数组的键名保留不变 ) array a ...

  6. C# 中奇妙的函数–String Split 和 Join

    很多时候处理字符串数据,比如从文件中读取或者存入 - 我们可能需要加入分隔符(如CSV文件中的逗号),或使用一个分隔符来合并字符串序列. 很多人都知道使用split()的方法,但使用与其对应的Join ...

  7. cx_Oracle.DatabaseError: DPI-1047

    ODPI-C Installation¶ Overview Oracle Client and Database Versions Linux Oracle Instant Client Zip Or ...

  8. JSP基本

    JSPとは.HTMLファイルにJavaコードを埋め込んでおき.クライアントの要求に応じてコードを実行.処理結果のみをクライアントに送信する技術です. 1.JSPは実はサーブレットです.最初にリクエスト ...

  9. 如何让cxgrid自动调整列宽

    1.选中cxgridview,在属性中找OptionsView--->ColumAutoWidth,把这个属性设为True; 2.在FDMemtable的open之后加上如下代码即可 [delp ...

  10. DATASNAP远程方法返回TSTREAM正解(转咏南兄)

    DATASNAP远程方法返回TSTREAM正解 DATASNAP远程方法返回TSTREAM,如果数据大小超过32K是会报错的.许多DELPHIER栽在这个上头,甚至开始怀疑TSTREAM返回数据的可行 ...