centos 6.5默认自带的python版本为2.6,但是其实很多Python库都是基于2.7.X来开发的,这就造成了很多问题。比如说Django就是基于Python 2.7.X开发的。理论上来说我们可以直接卸载默认安装的Python,但是跟随系统一起安装的软件又必须是Python 2.6.X,比如说著名的yum其实是一个Python脚本。如何在既不影响系统软件又让我使用新版的Python呢?这里我用Virtualenv来实现。
第一步:下载python源码
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
第二步:编译安装
安装前先安装下依赖包,没有pip的安装pip 。
依赖包安装
# yum groupinstall "Development tools" # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
pip安装
# wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py # python get-pip.py
解压编译安装
# tar -zxv Python-2.7.10.tgz # cd Python-2.7.10 # ./configure --prefix=/usr/local/python27 # make && make install
常规编译安装步骤,如果失败可能是某些依赖没有安装。
第三步:设置环境变量
编辑/etc/bashrc,添加如下内容。 export PATH="$PATH:/usr/local/python27/bin"
到这一步其实我们已经可以使用python2.7来使用了。
[root@iZ94myad6wkZ ~]# python2.7 -V Python 2.7.10
第四步:创建基于Python 2.7的虚拟环境
# pip install virtualenv # adduser py27 # su - py27 $ virtualenv ch -p /usr/local/python/bin/python2.7
这行到这一步可以看到在py27用户下面多了一个ch文件夹。
修改/home/py27/.bashrc文件,添加如下内容。
source /home/py27/ch/bin/activate
退出。
第五步:检查
之后我们登陆py27用户时默认的python版本就一直是2.7的了。这样很好的保护了系统python版本,比做软链接好。
(ch)[py27@iZ94myad6wkZ ~]$ python -V Python 2.7.10