找回密码
 注册会员
搜索

本文来自

Linux

Linux

订阅|关注

请添加对本版块的简短描述

297

主题

314

帖子

2343

积分

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
2343

[教程] Linux CentOS 6升级Python 2.7.16

[复制链接]
跳转到指定楼层
楼主
33340 xiaoxiao 发表于 2016-1-26 14:15:35
转自:https://teddysun.com/473.html

1)安装devtoolset
  1. yum groupinstall "Development tools" -y
复制代码


2)安装编译Python需要的包包
  1. yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel wget -y
复制代码


3)下载并解压Python 2.7.16的源代码
  1. wget --no-check-certificate https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tar.xz
  2. tar xf Python-2.7.16.tar.xz
  3. cd Python-2.7.16
复制代码


4)编译与安装Python 2.7.16
  1. ./configure
  2. make && make install
复制代码


默认 Python 2.7.16 会安装在 /usr/local/bin 目录下。

  1. ll -tr /usr/local/bin/python*

  2. /usr/local/bin/python2.7
  3. /usr/local/bin/python2.7-config
  4. /usr/local/bin/python -> python2
  5. /usr/local/bin/python2 -> python2.7
  6. /usr/local/bin/python2-config -> python2.7-config
  7. /usr/local/bin/python-config -> python2-config
复制代码


而系统自带的 Python 是在 /usr/bin 目录下。

  1. ll -tr /usr/bin/python*

  2. /usr/bin/python2.6-config
  3. /usr/bin/python2.6
  4. /usr/bin/python
  5. /usr/bin/python2 -> python
  6. /usr/bin/python-config -> python2.6-config
复制代码



5)先把系统默认的旧版 Python 重命名。
  1. mv /usr/bin/python /usr/bin/python.old
复制代码


6)再删除系统默认的 python-config 软链接。
  1. rm -f /usr/bin/python-config
复制代码


7)最后创建新版本的 Python 软链接。
  1. ln -s /usr/local/bin/python /usr/bin/python
  2. ln -s /usr/local/bin/python-config /usr/bin/python-config
  3. ln -s /usr/local/include/python2.7/ /usr/include/python2.7
复制代码


检查Python版本
  1. python -V
复制代码

返回 Python 2.7.16 为正常。



以下步骤还是有必要的

为新版 Python 安装 setuptools
  1. wget https://bootstrap.pypa.io/ez_setup.py -O - | python
复制代码

setuptools 正确安装完成后,easy_install 命令就会被安装在 /usr/local/bin 目录下了。

为新版 Python 安装 pip
  1. easy_install pip
复制代码

正确安装完成后,pip 命令就会被安装在 /usr/local/bin 目录下了。

为新版 Python 安装 distribute 包(可选)
  1. pip install distribute
复制代码

至此,新版 Python 即算安装完毕了。



解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本
  1. vi /usr/bin/yum
复制代码


将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6

但是,这种改法,万一哪天你 yum update 了一下,yum 被升级了后,又变回老样子了。
记住旧版本 Python 2.6.6 的重要路径如下所示,在运行 yum 命令的时候,会提示你哪个 module 不存在,不存在的我们就去旧版本的路径下找,一定能找到的。找到后,复制到新版本 Python 的路径 /usr/local/lib/python2.7/site-packages/ 下即可。

  1. /usr/lib/python2.6/site-packages/
  2. /usr/lib64/python2.6/site-packages/
复制代码


复制过程是这样的:
  1. cp -r /usr/lib/python2.6/site-packages/yum /usr/local/lib/python2.7/site-packages/
  2. cp -r /usr/lib/python2.6/site-packages/rpmUtils /usr/local/lib/python2.7/site-packages/
  3. cp -r /usr/lib/python2.6/site-packages/iniparse /usr/local/lib/python2.7/site-packages/
  4. cp -r /usr/lib/python2.6/site-packages/urlgrabber /usr/local/lib/python2.7/site-packages/
  5. cp -r /usr/lib64/python2.6/site-packages/rpm /usr/local/lib/python2.7/site-packages/
  6. cp -r /usr/lib64/python2.6/site-packages/curl /usr/local/lib/python2.7/site-packages/
  7. cp -p /usr/lib64/python2.6/site-packages/pycurl.so /usr/local/lib/python2.7/site-packages/
  8. cp -p /usr/lib64/python2.6/site-packages/_sqlitecache.so /usr/local/lib/python2.7/site-packages/
  9. cp -p /usr/lib64/python2.6/site-packages/sqlitecachec.py /usr/local/lib/python2.7/site-packages/
  10. cp -p /usr/lib64/python2.6/site-packages/sqlitecachec.pyc /usr/local/lib/python2.7/site-packages/
  11. cp -p /usr/lib64/python2.6/site-packages/sqlitecachec.pyo /usr/local/lib/python2.7/site-packages/
复制代码



但是不久就突然发现输入法图标不见了,然后打字没有候选框!iBus 崩了!再次进行搜索,又是版本问题iBus也是不支持Python2.7的
配置iBus
分别用 vi 打开下面两个文件,找到 exec python 那一行,把exec python 改为 exec python2.6 保存,退出。iBus在重启后就恢复正常了!
  1. vi /usr/bin/ibus-setup
复制代码
  1. vi /usr/libexec/ibus-ui-gtk
复制代码






回复

使用道具 举报

快速回复 返回顶部 返回列表