centos6升级 python到2.7

简介:

http://blog.csdn.net/jcjc918/article/details/11022345




    一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的Python是2.6版本,难怪一直连不上网。于是,继续百度google,进行安装,后来又出现问题...在此开篇记录一下,权当备忘。


查看python的版本


[plain] view plain copy print?

  1. #python  -V    

  2. Python 2.6.6  


1.下载Python-2.7.3



[plain] view plain copy print?

  1. #wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2  


2.解压



[plain] view plain copy print?

  1. #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?

  1. #cd Python-2.7.3  



[plain] view plain copy print?

  1. #./configure  

  2. #make all             

  3. #make install  

  4. #make clean  

  5. #make distclean  


5.查看版本信息



[plain] view plain copy print?

  1. #/usr/local/bin/python2.7 -V  


6.建立软连接,使系统默认的 python指向 python2.7

[plain] view plain copy print?

  1. #mv /usr/bin/python /usr/bin/python2.6.6  

  2. #ln -s /usr/local/bin/python2.7 /usr/bin/python  


7.重新检验Python 版本



[plain] view plain copy print?

  1. #python -V  


8解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本



[plain] view plain copy print?

  1. #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 崩了!再次进行搜索,又是版本问题抓狂 iBus也是不支持Python2.7的啊!

于是。。。


9.配置iBus

分别用 vi 打开下面两个文件,找到 exec python 那一行,把exec python 改为 exec python2.6 保存,退出。iBus在重启后就恢复正常了!是不是很开心?


[plain] view plain copy print?

  1. #vi /usr/bin/ibus-setup  

save_snippets_01.png

[plain] view plain copy print?

  1. #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					  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。完成这些安装之后,可以再次编译,上表中指定为弃用或者忽略的模块错误可以忽略。


 在编译完成之后,就可以接着上面的第六步安装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中的文章,文中包含自动安装的脚本文件。










本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1747460,如需转载请自行联系原作者
目录
相关文章
|
19天前
|
Linux 网络安全 Python
linux centos上安装python3.11.x详细完整教程
这篇文章提供了在CentOS系统上安装Python 3.11.x版本的详细步骤,包括下载、解压、安装依赖、编译配置、解决常见错误以及版本验证。
173 1
linux centos上安装python3.11.x详细完整教程
|
20天前
|
中间件 Linux vr&ar
Centos7升级Glibc
Centos7升级Glibc
|
19天前
|
Linux 数据安全/隐私保护 Perl
CentOS7中升级OpenSSL详细教程
这篇文章提供了在CentOS 7系统中升级OpenSSL到3.2版本的详细步骤,包括备份现有配置、安装依赖、下载安装新版本以及验证安装结果。
193 1
|
1月前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
66 8
|
1月前
|
JSON 安全 数据库
Python安全性大升级:OAuth与JWT,让你的应用穿上防弹衣🛡️
【9月更文挑战第6天】在数字世界中,每个应用都面临着安全威胁。作为Python开发者,构建强大的系统至关重要。OAuth和JWT为我们提供了坚实的安全保障。OAuth作为一种授权机制,让用户无需向第三方应用暴露敏感信息;JWT则通过自包含的信息传输,增强了安全性并提高了系统性能。利用Python生态中的这些工具,我们可以更好地保护用户数据,守护他们的信任与期待。下面是一个使用PyJWT生成和验证JWT的示例代码:(示例代码同上)通过这些技术,我们的应用能够更加稳健地在数字海洋中航行。
24 3
|
17天前
|
Python
python pip升级3-3
python pip升级3-3
|
19天前
|
Linux Python
Linux之centos安装clinkhouse以及python如何连接
Linux之centos安装clinkhouse以及python如何连接
|
2月前
|
Linux 开发工具 C语言
centos7编译安装python3
centos7编译安装python3
|
2月前
|
Linux Python
Linux 升级安装 Python 3
Linux 升级安装 Python 3
61 2
|
2月前
|
安全 IDE 开发工具
Python——记录pip问题(解决下载慢、升级失败问题)
Python——记录pip问题(解决下载慢、升级失败问题)
222 1