设为首页 收藏本站
查看: 1051|回复: 0

[经验分享] centos6升级 python到2.7

[复制链接]

尚未签到

发表于 2018-4-27 08:45:24 | 显示全部楼层 |阅读模式
  http://blog.csdn.net/jcjc918/article/details/11022345
  一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的Python是2.6版本,难怪一直连不上网。于是,继续百度google,进行安装,后来又出现问题...在此开篇记录一下,权当备忘。
  查看python的版本
  [plain] view plain copy print?

  •   #python  -V
  •   Python 2.6.6
  1.下载Python-2.7.3
  [plain] view plain copy print?

  •   #wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
  2.解压
  [plain] view plain copy print?

  •   #tar -jxvf Python-2.7.3.tar.bz2
  3.更改工作目录
  4.安装
  安装依赖:
  yum -y install gcc-c++ readline-devel sqlite-devel bzip2-devel openssl-devel libdbi-devel ncurses-devel zlib-devel gdbm-devel
  升级安装zlib
  # wget http://sourceforge.net/projects/libpng/files/zlib/1.2.8/zlib-1.2.8.tar.gz
  # tar -zxvf zlib-1.2.8.tar.gz
  # cd zlib-1.2.8
  # ./configure
  # make install
  [plain] view plain copy print?

  •   #cd Python-2.7.3
  [plain] view plain copy print?

  •   #./configure
  •   #make all
  •   #make install
  •   #make clean
  •   #make distclean
  5.查看版本信息
  [plain] view plain copy print?

  •   #/usr/local/bin/python2.7 -V
  6.建立软连接,使系统默认的 python指向 python2.7
  [plain] view plain copy print?

  •   #mv /usr/bin/python /usr/bin/python2.6.6
  •   #ln -s /usr/local/bin/python2.7 /usr/bin/python
  7.重新检验Python 版本
  [plain] view plain copy print?

  •   #python -V
  8解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本
  [plain] view plain copy print?

  •   #vi /usr/bin/yum
  将文件头部的
  #!/usr/bin/python
  改成
  #!/usr/bin/python2.6.6
  http://www.zhangchun.org/the-centos6-3-upgrade-python-to-2-7-3-
  这篇教程就到这里了,但是不久就突然发现输入法图标不见了,然后打字没有候选框!iBus 崩了!再次进行搜索,又是版本问题 DSC0000.gif iBus也是不支持Python2.7的啊!
  于是。。。
  9.配置iBus
  分别用 vi 打开下面两个文件,找到 exec python 那一行,把exec python 改为 exec python2.6 保存,退出。iBus在重启后就恢复正常了!是不是很开心?
  [plain] view plain copy print?

  •   #vi /usr/bin/ibus-setup
DSC0001.png

  [plain] view plain copy print?

  •   #vi/usr/libexec/ibus-ui-gtk
  在编译的时候,Python出现了下面的提示信息:
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.
  当然,每个机器上因为不同的配置,编译报错信息也会不同,比如网上有人的报错就是下面这样的:
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  gdbmimageop
  
  readline  sunaudiodev  zlib
  
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
  无论报错信息如何,意思很明确,我们编译的时候,系统没有办法找到对应的模块信息,为了解决这些报错,我们就需要提前安装依赖包,这些依赖包对应列表如下(不一定完全):
模块依赖说明_bsddbbsddbInterface to Berkeley DB library。Berkeley数据库的接口_cursesncursesTerminal handling for character-cell displays。_curses_panelncursesA panel stack extension for curses。_sqlite3sqliteDB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安装sqlite-devel_sslopenssl-devel.i686TLS/SSL wrapper for socket objects。_tkinterN/Aa thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinterbsddb185old bsddb module老的bsddb模块,可忽略。bz2bzip2-devel.i686Compression compatible with bzip2。bzip2-develdbmbsddbSimple “database” interface。dlN/ACall C functions in shared objects.Python2.6开始,已经弃用。gdbmgdbm-devel.i686GNU’s reinterpretation of dbmimageopN/AManipulate raw image data。已经弃用。readlinereadline-develGNU readline interfacesunaudiodevN/AAccess to Sun audio hardware。这个是针对Sun平台的,CentOS下可以忽略zlibZlibCompression 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。完成这些安装之后,可以再次编译,上表中指定为弃用或者忽略的模块错误可以忽略。
  在编译完成之后,就可以接着上面的第六步安装Python到指定目录下。安装完成之后,我们可以到安装目录下查看Python是否正常安装。
$ pushd /usr/local/python-2.7.6/bin$ python --version$ sudo mv /usr/bin/python /usr/bin/python.old$ sudo ln -s python /usr/bin/python$ popd$ python -V$ sudo sed -i "s/#\!\/usr\/bin\/python/#\!\/usr\/bin\/python.old/" /usr/bin/yum  1. 我们进入到安装路径下的bin目录, 并查看安装的版本(版本是2.7.6)
  2. 将现有的python版本重命名备份
  3. 创建新版本Python到 /usr/bin 目录下替代原有python
  4. 测试系统Python版本(应该是新的2.7.6)
  5. 此时如果yum不能正常工作,可以简单的通过sed将里面的Python引用替换成原来的Python路径即可。
  至此,完成Python的更新编译安装工作。如果你想完成自动安装,可以将前面的代码保存为Shell脚本文件——需要注意的是,你可能需要添加各个模块的安装脚本,本篇的是通过yum来安装的。也可以通过参考2中的文章,文中包含自动安装的脚本文件。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-452510-1-1.html 上篇帖子: 在CentOS上安装RabbitMQ3.6.X 下篇帖子: centos profile
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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