起因
实验室的服务器centos还是5.11版本,python版本竟然是2.4, 这几天想写点实验跑跑,但是这版本有点不爽,因此今天给python升了下级
升级
到目前位置Python2的最新版本是2.7.11
下载python源码
首先到官网下载python2.7.11版本,然后编译安装即可
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
安装依赖包
这里可能需要安装一些一来的包,主要有zlib和OpenSSl
否则可能会遇到
zlib
不安装会出现问题:ImportError: cannot import name HTTPSHandler。
CentOS: yum install zlib zlib-devel
Ubuntu: apt-get install zlib-devopenssl
不安装会出现问题 ImportError: cannot import name HTTPSHandler。
Centos :
yum install openssl openssl-devel -y
Debian or Ubuntu :
apt-get install libssl
编译安装
tar zxvf Python-2.7.11.tgz
cd Python-2.7.11
./configure
make && make install
替代原来版本
先备份原来的python,并把python2.7做软连接到新的位置
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.7 /usr/bin/python
python -V
修改yum
yum其实是一个python的脚本程序,我们更新了python库,会导致郁闷不能正确运行,因为yum使用的是python2.4版本,但是我们升级后,/usr/bin/python指向了2.7版本
修改/usr/bin/yum文件的第一行
把#/usr/bin/python
改成#/usr/bin/python2.4
这样yum可以正常运行了
升级pip
我们编译并安装了新的python,因此所以pip也需要升级到配套的版本:
安装pip需要setuptools或者ez_setup.py
可以参照我之前的博客安装 安装Python的包管理工具Pip
当然我们也可以去下载一些已经写好的一键下载工具包http://www.freelycode.com/static/python/get-pip.py
安装pip
验证pip
遇见问题
下面都是我们编译时可能需要的依赖包
zlib not available
在安装easy_install或者pip时出现如下错误
出现:zipimport.ZipImportError: can’t decompress data; zlib not available错误
修改配置重新编译python
cd Python-2.7.11
./configure
vim Modules/Setup
在这里把454行左右的 找到
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
最后重新编译运行
make
make install
ImportError: cannot import name HTTPSHandler
运行时报错:ImportError: cannot import name HTTPSHandler。
解决方法:
需要在安装python前,安装OpenSSl。
命令如下:
Centos :
yum install openssl openssl-devel -y
Debian or Ubuntu :
apt-get install libssl