Centos6.X系统中更新python版本

CentOS 6中,Python的版本默认为2.6.6版本,而我们有很多工作可能需要更高的版本,去官网下载并升级下CentOS中Python的版本。

1:准备工作

将系统中自带的python2.6.6更名一下,因为yum也使用了系统自带的python,所以最好也将yum里指定一下使用的python版本。另外,需要提前安装openssl和openssl-devel,以防止编译安装Python时无法加载SSL模块。

$ python -V #查看当前版本

$ mv /usr/bin/python /usr/bin/python2.6.6

$ vim /usr/bin/yum

将第一行的/usr/bin/python修改为/usr/bin/python2.6.6

$ yum install gcc gcc-c++ make openssl-devel

2:下载并安装新版python

3.3.0版下载地址

$ wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2

2.7.5版下载地址

$ wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

$ tar jxvf Python-3.3.0.tar.bz2

$ cd Python-3.3.0

$ ./configure $ make && make install

其他版本如法炮制.

3:更新链接

$ ln -s /usr/local/bin/python3.3 /usr/bin/python

$ python -V

4:更新setuptools和pip

setuptools和pip都是python的管理套件,更新了python以后,你会发现这些套件极有可能出现如下的错误

ImportError: No module named pkg_resources

ImportError: No module named setuptools pkg_resources.DistributionNotFound: The 'pip==7.1.0' distribution was not found and is required by the application

比如下面这种情况

[root@mycentos ~]# pip Traceback (most recent call last): File "/usr/bin/pip", line 5, in from pkg_resources import load_entry_point ImportError: No module named pkg_resources

[root@mycentos ~]# easy_install Traceback (most recent call last): File "/usr/bin/easy_install", line 5, in from pkg_resources import load_entry_point ImportError: No module named pkg_resources

[root@mycentos ~]# python -c 'import pkg_resources' Traceback (most recent call last): File "", line 1, in ImportError: No module named pkg_resources

[root@mycentos ~]# python -c 'import setuptools' Traceback (most recent call last): File "", line 1, in ImportError: No module named setuptools

解决办法

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

然后再次尝试,就不会现出现上面的错误了

[root@zetawiki ~]# python -c 'import pkg_resources'
[root@zetawiki ~]# python -c 'import setuptools'
[root@zetawiki ~]# easy_install --version
setuptools 26.1.1 from /usr/local/lib/python3.3/site-packages/setuptools-26.1.1-py3.3.egg (Python 3.3)

此时可能pip套件仍不能使用。比如极有可能出现了下面的错误:

[root@zetawiki ~]# pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in 
    from pkg_resources import load_entry_point
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 3141, in 
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 3127, in _call_aside
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 3154, in _initialize_master_working_set
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 640, in _build_master
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 941, in require
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 828, in resolve
pkg_resources.DistributionNotFound: The 'pip==7.1.0' distribution was not found and is required by the application

解决办法

$ yum remove python-pip
$ easy_install pip

然后再次测试,就不会再有问题了,如下所示

[root@zetawiki ~]# pip --version
-bash: /usr/bin/pip: No such file or directory

[root@zetawiki ~]# which pip
/usr/local/bin/pip

[root@zetawiki ~]# hash -r
[root@zetawiki ~]# pip --version
pip 8.1.2 from /usr/local/lib/python3.3/site-packages/pip-8.1.2-py3.3.egg (python 3.3)
1