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
最後分別運行下。

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