之前写过python 3.x的独立安装,相对来说比较简单直接安装即可,因为对于系统默认的python版本是2.x,那么安装3.x的时候只需要编译到新的目录即可,所有的模块都不会和之前的2有联系,但是如果再安装2.7就不一样了,因为系统已经存在一个2.7的环境,所以新编译的python有可能还使用之前的库,就比如目前系统自带的版本为2.7.5,我们现在安装2.7.15,默认情况下进入新安装的交互式界面,发现版本仍然是2.7.5,还是原来的,原因就是lib重用了,这种情况只需要在编译的时候指定一下参数就可以解决了,下面详细说一下安装过程.
另外注明一下,一般是不推荐安装python 2.x的,我们这里安装时为了在某些特殊情况下需要使用过时的接口而专门安装的,比如我这里会报错undefined symbol: PyUnicodeUCS2_Format,也就是不支持过时的ucs2编码,所以为了不影响现有的系统,才选择重新编译2.7来兼容这个问题;如果项目不存在这些兼容问题,那么推荐使用python 3.
首先安装的包是:Python-2.7.15.tar.xz,即将安装到的目录为:/monchickey/python27
首先解压包:
tar -xJvf Python-2.7.15.tar.xzcd Python-2.7.15/
然后建立一下lib目录,否则待会configure会出错,这个是和之前不一样的地方
mkdir -p /monchickey/python27/lib
安装之前可以确认一下相关的包是否安装,一般情况下都是安装的了,使用yum安装如下:
yum -y install openssl openssl-develyum -y install ncurses-develyum -y install bzip2-develyum -y install sqlite-develyum -y install python-develyum -y install zlib zlib-devel
然后开始编译和安装:
./configure --prefix=/monchickey/python27 --enable-shared --enable-unicode=ucs2 LDFLAGS="-Wl,-rpath /monchickey/python27/lib"make -j4make install
在执行configure的时候,--enable-shared参数一定要指定,LDFLAGS这个参数很关键就是指定编译的lib目录使用我们自定义的目录,如果不加就使用系统的了,最后--enable-unicode是根据需要指定ucs2还是ucs4的编码对齐方式,在系统自带的python2.7或者python3中都是使用的ucs4编码方式,这里就是为了解决上面所说的那个错误而指定的,这个参数或者其他参数根据你实际的项目需要指定,不需要的话直接去掉即可,但是另外两个参数一定要加.
现在python 2.7.15独立环境就安装完毕了,直接调用新的安装目录下的python使用即可.