Centos 升级python2.7

linux工具 waitig 2257℃ 百度已收录 0评论

由于centos对python2.7的兼容性不是很好,因此Centos系统自带的python是2.6版本,这就给我们的工作带来了很多不便,这里记录下在centos下将python2.6升级为python2.7的过程,还有遇到的一些问题,亲自实践过,希望能帮助到大家。

一、更新系统和开发工具集

yum -y update
yum groupinstall -y 'development tools'

另外还需要安装 python 工具需要的额外软件包 SSL, bz2, zlib

yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget

二、源码安装Python 2.7.x

wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
xz -d Python-2.7.8.tar.xz
tar -xvf Python-2.7.8.tar

安装详情

# 进入目录:
cd Python-2.7.8
# 运行配置 configure:
./configure --prefix=/usr/local
# 编译安装:
make
make install
# 检查 Python 版本:
# python2.7 -V
Python 2.7.8
在这里我遇到了一些问题,如下:
Python build finished, but the necessary bits to build these modules were not found:
   _bsddb             _sqlite3           _ssl
   _tkinter           bsddb185           bz2
   dbm                gdbm               readline
   sunaudiodev

上网去搜了一下,发现是有些依赖系统中没有所致。无论报错信息如何,意思很明确,我们编译的时候,系统没有办法找到对应的模块信息,为了解决这些报错,我们就需要提前安装依赖包,这些依赖包对应列表如下(不一定完全):

image

 

在CentOS下,可以安装这些依赖包:readline-devel,sqlite-devel,bzip2-devel.i686,openssl-devel.i686,gdbm-devel.i686,libdbi-devel.i686,ncurses-libs,zlib-devel.i686。完成这些安装之后,可以再次编译,上表中指定为弃用或者忽略的模块错误可以忽略。

安装命令:yum install readline-devel sqlite-devel bzip2-devel.i686 openssl-devel.i686 gdbm-devel.i686 libdbi-devel.i686 ncurses-libs zlib-devel.i686

在编译完成之后,就可以接着上面的安装步骤安装Python到指定目录下。

安装完成之后,我们可以到安装目录下查看Python是否正常安装。

image

三、安装 setuptools

#获取软件包
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
# 解压:
tar -xvf setuptools-1.4.2.tar.gz
cd setuptools-1.4.2
# 使用 Python 2.7.8 安装 setuptools
python2.7 setup.py install

四、安装 PIP

curl  https://bootstrap.pypa.io/get-pip.py | python2.7 -

五、修复 yum 工具

此时yum应该是失效的,因为此时默认python版本已经是2.7了。而yum需要的是2.6 所以:

# which yum 
/usr/bin/yum
#修改 yum中的python 
将第一行  
#!/usr/bin/python  改为 #!/usr/bin/python2.6
此时yum就ok啦
 

因为每次新开centos系统都要重新升级python,因此把方法记录下来,希望可以帮到更多的朋友。


本文由【waitig】发表在等英博客
本文固定链接:Centos 升级python2.7
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (1)分享 (0)