CENTOS 安装python双版本(2和3)

CentOS6使用Python2.6.6作为系统默认的python,几个关键的系统实用程序都是以它作为开发语言的,例如yum,如果对默认的Python解释器进行升级将使得这是程序无法使用。
所有关键是要把其他版本的Python安装的在/usr/local下(或其他一些非标准位置),使他们能够与系统版本的python2.6.6并存。

1、准备工作,安装先决条件
为了编译Python中,你必须先安装开发工具和一些额外的库。这些额外的库并不是必须要安装的,但没有他们,你的新的Python解释器(即python2.7或者python3.3)将是相当无用的。对了,centos下,如果要自己编译,一般都用的是devel包。
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

另外,好有3点需要注意:
a、Unicode
当谈到对Unicode的支持,Python有一个漫长而复杂的历史。除非你有非常特殊的原因,你应该配置的Python3.2和更早的版本,使UTF-32的支持。这会增加内存的使用情况,但提高了兼容性。在Python3.3中对Unicode的支持已经完全重写和字符串使用的是最高效的编码可以自动存储。
在python2.7中,configure命令中启用UTF-32支持需要加上--enable-unicode=ucs4。在Python3.2就是所谓的--with-wide-unicode。
b、共享库
你或许应该编译Python作为一个共享库。所有现代的Linux发行版附带的Python编译为一个共享库,并有第三方工具,如的mod_wsgi和Blender,如果没有这些共享库它们是不是工作的。如果编译Python作为一个共享库也必须告诉它如何找到库。您有两种选择:
第1种:在configure命令的结尾加上:LDFLAGS="-Wl,-rpath /usr/local/lib"
第2种:用文本编辑器打开文件/etc/ld.so.conf文件,将目录/usr/local/lib目录添加到它的结尾。在添加完成后,你必须运行/sbin/ldconfig来使动态链接器知道你所做的更改。
c、使用“make altinstall“
使用make altinstall当您安装的Python的自定义版本,这一点至关重要。如果你使用正常的make install的,你最终会发现文件系统中有两个命名为python的文件,实际就是两个不同的版本(一个在/usr/bin,另一个在/usr/local/bin),这可能会导致是非常难以诊断的问题。

2、安装python
这没有什么要说的了。

Python 2.7.6:

wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

Python 3.3.5:

wget http://python.org/ftp/python/3.3.5/Python-3.3.5.tar.xz
tar xf Python-3.3.5.tar.xz
cd Python-3.3.5
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall

安装完成后,注意观察下
/usr/local/bin/python2.7
/usr/local/bin/python3.3
系统的python2.6.6应该在
/usr/bin/python, /usr/bin/python2,/usr/bin/python2.6
最后分别运行下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章