前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >升级 python 2.6.6 到 2.

升级 python 2.6.6 到 2.

作者头像
py3study
发布2020-01-08 15:56:39
8920
发布2020-01-08 15:56:39
举报
文章被收录于专栏:python3python3

CentOS 6 系统默认 Python 版本是:2.6.6 平时在使用中遇到很多的库要求是 2.7.x 版本的库,比如使用 ConfigParser 库,在 2.6 版本库就不支持没有 value 值的配置项,需要升级到 2.7 以上的库才行,这次就尝试升级一下 Python 到 2.7.x 版本,记录于此。

Centos 7升级原python 2.7.5至Python 3.7,请看此文:https://blog.51cto.com/10316297/2134736?from=timeline

一、升级 Python 2.7.14 版本

1. 准备安装包,系统是最小化安装

代码语言:javascript
复制
# 下载安装依赖的相关包
[root@vip ~]# yum install vim gcc gcc-c++ make wget -y
[root@vip ~]# yum install openssl-devel zlib-devel readline-devel sqlite-devel -y
代码语言:javascript
复制
# 下载[root@vip ~]# cd /usr/local/src
[root@vip ~]# wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
代码语言:javascript
复制
 # 解压
[root@vip ~]# tar -zxvf Python-2.7.14.tgz
[root@vip ~]# ls
Python-2.7.14  Python-2.7.14.tgz

2. 编译配置安装

代码语言:javascript
复制
[root@vip ~]# cd Python-2.7.14
[root@vip Python-2.7.14]# ./configure --enable-shared --enable-loadable-sqlite-extensions --prefix=/usr/local/python27 --with-zlib --with-ssl
# 其中--enable-loadable-sqlite-extensions是sqlite的扩展,如果需要使用的话则带上这个选项。
[root@vip Python-2.7.14]# vim ./Modules/Setup    # 找到下边这一行内容,去掉注释
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
[root@vip Python-2.7.14]# make && make install

在编译的时候,Python出现了下面的提示信息:

123456

Python build finished, but the necessary bits to build these modules were not found:   _bsddb             _sqlite3           _ssl   _tkinter           bsddb185           bz2   dbm                gdbm               readline   sunaudiodevTo find the necessary bits, look in setup.py in detect_modules() for the module's name.

当然,每个机器上因为不同的配置,编译报错信息也会不同,比如网上有人的报错就是下面这样的:

1234567

Python build finished, but the necessary bits to build these modules were not found:   _bsddb             _curses            _curses_panel     _sqlite3           _ssl               _tkinter          bsddb185           bz2                dbm               dl                 gdbm               imageop           readline           sunaudiodev        zlib           To find the necessary bits, look in setup.py in detect_modules() for the module's name.

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

模块

依赖

说明

_bsddb

bsddb

Interface to Berkeley DB library。Berkeley数据库的接口

_curses

ncurses

Terminal handling for character-cell displays。

_curses_panel

ncurses

A panel stack extension for curses。

_sqlite3

sqlite

DB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel

_ssl

openssl-devel.i686

TLS/SSL wrapper for socket objects。

_tkinter

N/A

a thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinter

bsddb185

old bsddb module

老的bsddb模块,可忽略。

bz2

bzip2-devel.i686

Compression compatible with bzip2。bzip2-devel

dbm

bsddb

Simple “database” interface。

dl

N/A

Call C functions in shared objects.Python2.6开始,已经弃用。

gdbm

gdbm-devel.i686

GNU’s reinterpretation of dbm

imageop

N/A

Manipulate raw image data。已经弃用。

readline

readline-devel

GNU readline interface

sunaudiodev

N/A

Access to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略

zlib

Zlib

Compression compatible with gzip

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

代码语言:javascript
复制
yum install readline-devel sqlite-devel bzip2-devel openssl-devel gdbm gdbm-devel libdbi-devel ncurses-libs zlib-devel

3. 查看 python 版本信息

代码语言:javascript
复制
[root@vip Python-2.7.14]# python -V
Python 2.6.6# 版本依旧是 2.6.6

4. 用 python2.7 替换旧版本

代码语言:javascript
复制
[root@vip Python-2.7.14]# cd /usr/bin/
[root@vip bin]# ls python* -l   # 旧 python 版本信息
-rwxr-xr-x. 2 root root 4864 2月  22 2013  python
lrwxrwxrwx. 1 root root    6 10月 22 18:38 python2 -> python
-rwxr-xr-x. 2 root root 4864 2月  22 2013  python2.6
代码语言:javascript
复制
[root@vip bin]# mv /usr/bin/python /usr/bin/python2.6.6
[root@vip bin]# ln -s /usr/local/python27/bin/python2.7 /usr/bin/python
[root@vip bin]# ln -s /usr/local/python27/bin/python2.7 /usr/bin/python2.7
代码语言:javascript
复制
[root@vip bin]# ls python* -l
lrwxrwxrwx. 1 root root   33 10月 23 00:01 python -> /usr/local/python27/bin/python2.7
lrwxrwxrwx. 1 root root    6 10月 22 18:38 python2 -> python
-rwxr-xr-x. 2 root root 4864 2月  22 2013 python2.6
-rwxr-xr-x. 2 root root 4864 2月  22 2013 python2.6.6

5. 重新验证 Python 版本信息

代码语言:javascript
复制
[root@vip bin]# python -V
Python 2.7.14

可以看到,系统识别的 python 版本已经是 python 2.7.14

执行 python -V 遇到的问题:

代码语言:javascript
复制
python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
# 原因:linux系统默认没有把/usr/local/python27/lib路径加入动态库搜索路径

解决:

代码语言:javascript
复制
[root@vip ~]# vim /etc/ld.so.conf
# 添加如下一行内容
/usr/local/python27/lib
[root@vip ~]# ldconfig  # 使新添加的路径生效

二、解决 yum 兼容性问题

因为 yum 是不兼容 Python 2.7 的,所以 yum 不能正常工作,我们需要指定 yum 的 Python 为 2.6。

1. 升级 python 后 yum 出现的问题

代码语言:javascript
复制
[root@vip bin]# 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
... ... ... ...

2. 编辑 yum 配置文件

代码语言:javascript
复制
[root@vip bin]# vim /usr/bin/yum
#!/usr/bin/python
# 第一行修改为 python2.6.6
#!/usr/bin/python2.6.6

3. 验证 yum 问题解决

代码语言:javascript
复制
[root@vip bin]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
... ... ... ...

三、升级 python 后,安装 pip 工具

1. 下载安装

代码语言:javascript
复制
[root@vip ~]# wget https://bootstrap.pypa.io/get-pip.py
[root@vip ~]# python get-pip.py

2. 设置软连接

代码语言:javascript
复制
[root@vip ~]# ln -s /usr/local/python27/bin/pip2.7 /usr/bin/pip

四、安装 ipython

代码语言:javascript
复制
[root@vip ~]# pip install ipython==1.2.1
[root@vip ~]# ln -s /usr/local/python27/bin/ipython /usr/bin/ipython
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、升级 Python 2.7.14 版本
  • 二、解决 yum 兼容性问题
  • 三、升级 python 后,安装 pip 工具
  • 四、安装 ipython
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档