CentOS 6.x 升级Python2.6.x到Python2.7.x

来源:互联网 发布:dota狐狸妈黑历史 知乎 编辑:程序博客网 时间:2024/05/22 10:24

CentOS 6.X 自带的python版本是 2.6 , 由于工作需要,很多时候需要2.7版本。所以需要进行版本升级。由于一些系统工具和服务是对 Python 有依赖的,所以升级 Python 版本需要注意。

升级步骤

如何欢乐的,没有痛苦的升级python版本 ,往下看 …

1. 更新系统和开发工具集

更新指令,并安装必要的开发工具,比如gcc等:

yum -y updateyum groupinstall -y 'development tools'

另外还需要安装 python 工具需要的额外软件包 SSL, bz2, zlib:

yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget

源码安装Python 2.7.x:

wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xzunxz Python-2.7.10.tar.xztar -vxf Python-2.7.10.tar

如果系统没有安装xz软件包或者tar软件包,运行下面的命令安装:

yum -y install xzyum -y install tar

执行完以上命令会解压得到Python-2.7.10这个文件夹,进入该目录并执行以下命令进行配置。

./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib --prefix=/usr/local

其中 --enable-loadable-sqlite-extensions 是sqlite的扩展,如果需要使用的话则带上这个选项。

之后执行:

vi ./Modules/Setup

找到 #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz 去掉注释并保存,然后进行编译和安装。

make && make install

安装好Python2.7之后我们需要先把Python2.6备份起来,然后再对yum的配置进行修改,如果不进行这一步操作的话,执行yum命令将会提示你Python的版本不对。

(1)执行以下命令,对Python2.6进行备份,然后为Python2.7创建软链接:

mv /usr/bin/python /usr/bin/python2.6.6ln -s /usr/local/bin/python2.7 /usr/bin/python

(2)然后编辑/usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6
现在执行yum命令已经不会出现之前的错误信息了。


我们执行python -V查看版本信息,如果出现错误:

error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

编辑配置文件:

vi /etc/ld.so.conf

添加新的一行内容/usr/local/lib,保存退出,然后:

/sbin/ldconfig  /sbin/ldconfig -v

2. 安装pip

下载最新版的pip,然后安装。

wget https://bootstrap.pypa.io/get-pip.pypython get-pip.py

查找pip的位置:

whereis pip

找到pip2.7的路径,为其创建软链作为系统默认的启动版本。

ln -s /usr/local/bin/pip2.7 /usr/bin/pip

pip安装完毕,现在可以用它下载安装各种包了。

3. python命令行中backspace键出现^H的问题

我一直以来在远程到 Linux 服务器使用其中的 Python、Perl、MongoDB 自带的 shell 时,都会出现敲击 Backspace 键删除某些字符时,字符没有被删除,反而会出现 ^H,只能使用 Ctrl-W 来删除整个单词,非常影响效率,今天闲来无事又看了一遍 《Guide To Unix And Linux》,发现了这个问题的原因
先查看服务器上的 erase 信号的映射:

stty -a

会出现:

erase信号

可以看出这里的 erase 信号为 ^?,而发送过去的却是 ^H,这就是敲击 Backspace 时为什么不会删除字符而会显示 ^H 的原因,如果要解决这个问题,可以使用 Ctrl-Backspace 键来发送 ^? 信号来删除字符,但是这样还是太麻烦了,需要用组合键,而最简单的方法就是把 Linux 服务器中的 erase 信号设置为 ^H:

stty erase ^H

再看一下 erase 信号的映射:

erase信号

变为 ^H 了,这样就可以敲击 Backspace 来删除字符,但是这样只是临时的,系统重启过后就会失效,可以把这条命令写入家目录下的 .bash_profile 文件中实现永久修改。

4. 参考链接

  1. https://ruter.github.io/2015/12/03/Update-python/
  2. https://ruiaylin.github.io/2014/12/12/python%20update/
  3. http://leeyx.org/archives/1111
0 0
原创粉丝点击