1、安装一堆需要的软件包,之所以搞了两天,完全是被这些坑的,一步一个坑啊!
yum -y install openssl openssl-devel ncurses-devel.x86_64 bzip2-devel sqlite-devel python-devel zlib
2、下载 python2.7.10源码包,解压到一个临时目录中,我就放在/tmp 下了
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
tar zxvf Python-2.7.12.tgz
3、编译
编译前,注意一下,configure时候要使用"--enable-shared",表示生成动态链接库。(不然后面编译mod_wsgi会出错)仅使用这一项也不够,开始仅使用--enable-shared选项,发现编译完成后,进入Python2.7.10目录,执行python、python2、python2.7在终端都是返回python2.7.5的提示符。所以,在执行configure命令的时候,还要加上"-rpath"选项,这个代表是否将生成的库安装在软件的安装目录,默认是在安装目录,否则自己指定路径。
先建立一个目录,不然后面configure的时候会出错:
mkdir -p /usr/local/python/2.7.12/lib
./configure --enable-shared --prefix=/usr/local/python/2.7.12 LDFLAGS="-Wl,-rpath /usr/local/python/2.7.12/lib"
make && make install && make clean
4、切换新版本
此处一定要把原来的 python2.7.5保留,我开始是直接覆盖了老版本,结果发现 yum 不能用了,费了无数劲,也没搞定,只好重装了系统,反正是测试的虚拟机(不过第二天找到修复的办法了)
mv /usr/bin/python /usr/bin/python2.7.5
ln -fs /usr/local/python/2.7.12/bin/python2.7 /usr/bin/python
5、解决 yum 的问题
因为yum需要使用Python2.7.5的版本,现在 yum 应该不能干活了,还有设置一下yum相关的文件,这样执行yum相关的命令时才不会出错。"vim /usr/bin/yum",修改第一句,替换成保留的2.7.5的版本:
!/usr/bin/python2.7.5
看了很多人说改完上面的就万事大吉了,我修改了上面的之后,yum还是出问题,然后又根据出问题的部分修改了"vim /usr/libexec/urlgrabber-ext-down"下的第一句:
!/usr/bin/python2.7.5
果然熟悉的 yum 界面出来了!
6、安装 setuptools、pip
python下的setuptools带有一个easy_install的工具,在安装python的每三方模块、工具时很有用,也很方便。安装setuptools前先安装pip!
安装pip:
根据官网安装pip说明:https://pip.pypa.io/en/stable/installing/
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装pip的时候回自动安装 installed pip-8.1.2 setuptools-27.1.2 wheel-0.29.0
增加一个软链接,这一步不是很必要:
ln -fs /usr/local/python/2.7.10/bin/pip /usr/bin/pip
最后再说一下,最好把新的 python 的路径加到 PATH 环境变量中,否则还会有其他组件运行不正常。
export PYTHON_HOME=/usr/local/python/2.7.12
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$ANT_HOME/bin:$FINDBUGS_HOME/bin:$PYTHON_HOME/bin:$PATH
source /etc/profile