Linux CentOS 6.X系统默认安装的Python都是2.6版本。目前很多python库对2.6的支持都已经放弃。有备无患,这里记录Python2.6升级到Python2.7过程以及一些注意事项
1. 下载并安装2.7最新版的Python
笔者写这篇blog时,官方http://www.python.org最新版为2.7.13,下面以2.6.6升级到2.7.13为例进行叙述。
首先,下载解压python2.7.13版本执行以下命令:
wget http://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
unxz Python-2.7.13.tar.xz
tar -vxf Python-2.7.13.tar
cd Python-2.7.13
为了防止后面安装pip等相关工具出问题,这里先安装zlib和ssh包,执行如下命令:
yum install openssl-devel -y
yum -y install zlib*
紧接着,修改Modules/Setup文件,执行如下命令:
vi Modules/Setup
去掉下面这些行的注释#,并保存
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
#_socket socketmodule.c timemodule.c
#_ssl _ssl.c \
#-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#-L$(SSL)/lib -lssl -lcrypto
最后进行编译安装,执行如下命令:
./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib
make && make install
安装完成之后,执行命令:
python -V
查看python版本,发现还是原来的2.6.6,接着进行下一步
2. 对Python2.6进行备份,然后为Python2.7创建软链接
首先在/usr/bin目录下看看系统中2.6版本的python执行文件情况,如下:
-rwxr-xr-x. 1 root root 11040 Nov 22 2013 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 9032 Nov 22 2013 python
lrwxrwxrwx. 1 root root 6 Apr 3 2016 python2 -> python
-rwxr-xr-x. 1 root root 9032 Nov 22 2013 python2.6
可以看到/usr/bin/python和/usr/bin/python2.6是一样的执行文件。这里直接删除/usr/bin/python,为python2.7版本创建软链接即可,执行以下命令:
rm /usr/bin/python
ln -s /usr/local/bin/python2.7 /usr/bin/python
再次查看版本,执行命令:
python -V
版本已经是2.7.13了
3. 恢复yum命令
这时,会发现yum命令无法使用了,执行yum
命令,会有如下提示:
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:No module named yum
Please install a package which provides this module, or
verify that the module is installed correctly.It’s possible that the above module doesn’t match the
current version of Python, which is:
2.7.13 (default, Feb 16 2017, 07:43:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
解决方法是:vi /usr/bin/yum
把第一行的
#!/usr/bin/python
修改成
#!/usr/bin/python2.6
保存退出,再次执行命令yum
,恢复正常
4. 安装pip、setuptools、wheel
获取并安装最新版本的pip,执行如下命令:
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
python get-pip.py
会有如下输出:
Collecting pip
Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 36kB/s
Collecting setuptools
Downloading setuptools-34.2.0-py2.py3-none-any.whl (389kB)
100% |████████████████████████████████| 399kB 31kB/s
Collecting wheel
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
100% |████████████████████████████████| 71kB 62kB/s
Collecting appdirs>=1.4.0 (from setuptools)
Downloading appdirs-1.4.0-py2.py3-none-any.whl
Collecting packaging>=16.8 (from setuptools)
Downloading packaging-16.8-py2.py3-none-any.whl
Collecting six>=1.6.0 (from setuptools)
Downloading six-1.10.0-py2.py3-none-any.whl
Collecting pyparsing (from packaging>=16.8->setuptools)
Downloading pyparsing-2.1.10-py2.py3-none-any.whl (56kB)
100% |████████████████████████████████| 61kB 86kB/s
Installing collected packages: pip, appdirs, pyparsing, six, packaging, setuptools, wheel
Successfully installed appdirs-1.4.0 packaging-16.8 pip-9.0.1 pyparsing-2.1.10 setuptools-34.2.0 six-1.10.0 wheel-0.29.0
可以看到pip、setuptools、wheel都全部安装了
到这里,升级结束,可以愉快的使用Python了