Python升级
环境: 操作系统python版本较低,如CentOS6.5自带python版本为2.6,无法通过yum进行升级安装,所以需要手动源码编译python升级(python2.6 => python2.7)
Python官网找到相应的python版本源码,下载到本地:
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
解压并进入目录:
cd Python-2.7.12 ; ./configure
编译的时候,会出现一些提示信息,Python build finished, but the necessary bits to build these modules were not found:xxx,也就是系统没有办法找到对应的模块信息,需要我们提前安装依赖包,对应列表如下:
| 模块 | 依赖 | 说明 | 
|---|---|---|
| _bsddb | bsddb | Interface to Berkeley DB library。Berkeley数据库的接口 | 
| _curses | ncurses | Terminal handling for character-cell displays。 | 
| _curses_panel | ncurses | A panel stack extension for curses。 | 
| _sqlite3 | sqlite | DB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel | 
| _ssl | openssl-devel.i686 | TLS/SSL wrapper for socket objects。 | 
| _tkinter | N/A | a thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinter | 
| bsddb185 | old bsddb module | 老的bsddb模块,可忽略。 | 
| bz2 | bzip2-devel.i686 | Compression compatible with bzip2。bzip2-devel | 
| dbm | bsddb | Simple “database” interface。 | 
| dl | N/A | Call C functions in shared objects.Python2.6开始,已经弃用。 | 
| gdbm | gdbm-devel.i686 | GNU’s reinterpretation of dbm | 
| imageop | N/A | Manipulate raw image data。已经弃用。 | 
| readline | readline-devel | GNU readline interface | 
| sunaudiodev | N/A | Access to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略 | 
| zlib | Zlib | Compression compatible with gzip | 
安装依赖包:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel
make; make install
python 2.7.12 二进制文件被安装到/usr/local/bin下,为了使用,我们还改变系统python的链接,先备份后链接:
cp /usr/bin/python /usr/bin/python-2.6.6; rm /usr/bin/python; ln -s /usr/local/bin/python /usr/bin/python
通过/usr/bin/python -V; python -V可查看我们刚安装的新版本。
升级python后,使用yum时,会出现问题,修改/usr/bin/yum文件首行的"#!/usr/bin/python"为"#!/usr/bin/python2.6"即可
使用python2.7.12后,安装的python包,会被自动安装到/usr/local/lib/python2.7/site-packages目录下