将python2.6 升级到python2.7
一、python2.6升级至Python2.7
1.查看当前python版本
$ python -V $ python 2.6.6 # 2.6 版本的pip下载uwsgi是一个坑,不能正常使用,建议最后不要升级到3.0版本部署django项目
2.下载Python-2.7.12
$ wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
3.解压缩并更改工作目录
$ tar zxvf Python-2.7.12.tgz
$ cd Python-2.7.12
4.更新python版本
yum -y install gcc gcc-devel openssl openssl-devel python-devel ./configure make all make install make clean make disclean
5.查看版本信息
$ /usr/local/bin/python2.7 -V
6.建立软连接,使系统默认的python指向python2.7
mv /usr/bin/python /usr/bin/python2.6.6 #备份 ln -s /usr/local/bin/python2.7 /usr/bin/python # 建立软连接
7.重新检验Python版本
python -V
需要注意的是,可能会出现普通用户的python和sudo的python版本不同的情况,此时要检查一下软连接的建立是否正确,不然,在接下来使用sudo python setup.py install 安装package的时候会安装到Python2.6里。
我就是遇到了这个问题,网上建议的解决方法是使用sudo -i python setup.py install使其寻址到python2.7,或者直接指定python2.7的位置。在我尝试了sudo -i python -V这个命令,发现结果依然是python 2.6.6之后,便放弃了sudo -i的方法,然后重新做了一次软连接,虽然好像我两次做的完全一样,但不知道为什么,成功使得sudo python -V的结果也是python 2.7.12了。
8.指定yum的Python版本
由于系统python软连接指向python2.7之后,yum将无法正常工作,出现“No module named yum”的报错。
解决方式如下:
vim /usr/bin/yum ###将文件头部的 #!/usr/bin/python ###改为 #!/usr/bin/python2.6.6
二、安装setuptools和pip
在完成Python的升级之后,接下来就是安装python的各种package了。但是有一很大的麻烦:如果使用 sudo yum install python-pip命令安装pip的话,将会直接安装到python2.6中。我还遇到了一个问题就是下载pip的压缩文件,使用sudo python setup.py install命令,又会报错说没有setuptools模块;下了setuptools的压缩文件,网上说使用ez_setup.py安装,但压缩包里只有easy_install.py和setup.py两个安装文件,安装起来也是各种报错。简直让人绝望,还好最后找到了一个ez_setup.py的下载链接(https://bootstrap.pypa.io/ez_setup.py),这才拯救了我。
1.下载安装ez.setup.py
yum -y install epel-release yum install python-pip wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py python get-pip.py mv /usr/bin/pip /usr/bin/pip2.6.6 ln -s /usr/local/bin/pip2.7 /usr/bin/pip pip --version /usr/bin/pip --version