Centos6.8 python2.6升级至2.7,并安装setuptools和pip

题记:申请了一个测试服务器,自带python版本为2.6,但是至少pyhton2.7才能满足我的需要,花了两个晚上终于搞定,因此将遇到的问题整理一下。

一、python2.6升级至Python2.7

1.查看当前python版本

$ python -V
$ python 2.6.6

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.安装

$ ./configure
$ sudo make all
$ sudo make install
$ sudo make clean
$ sudo make disclean

5.查看版本信息

$ /usr/local/bin/python2.7 -V

6.简历软连接,使系统默认的python指向python2.7

$ sudo mv /usr/bin/python /usr/bin/python2.6.6   #备份
$ sudo ln -s /usr/local/bin/python2.7 /usr/bin/python  # 建立软连接

7.重新检验Python版本

$ python -V
$ sudo 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”的报错。
解决方式如下:
$ sudo 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

$ wget https://bootstrap.pypa.io/ez_setup.py
$ sudo python ez_setup.py install

2.下载安装pip

$ tar -zxvf pip-9.0.1.tar.gz
$ cd pip-9.0.1
$ sudo python setup.py install

–参考:
1.http://blog.csdn.net/jcjc918/article/details/11022345
2.http://blog.csdn.net/snail200x/article/details/50553656

注:原链接https://blog.csdn.net/Zx_whu/article/details/71773923
是我自己的csdn博客,后续不打算继续使用csdn,故将原有的内容迁移过来。

Created at 2017.05.12.

你可能感兴趣的:(Centos6.8 python2.6升级至2.7,并安装setuptools和pip)