国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

CentOS-6.5源碼編譯安裝Python2.7.9

DevTalking / 2464人閱讀

摘要:確保當(dāng)前系統(tǒng)安裝了。解壓縮文件,然后進(jìn)入源碼目錄下。在終端執(zhí)行命令,然后執(zhí)行編譯安裝。至此,升級(jí)完成。后記因?yàn)楫?dāng)時(shí)項(xiàng)目條件的原因,才有了下源碼編譯安裝的奇怪需求,實(shí)際開(kāi)發(fā)中,建議大家直接使用自帶的版本,會(huì)省去許多麻煩。

筆者序

偶然間翻出一篇去年幫公司安裝開(kāi)發(fā)環(huán)境后記下的關(guān)于Python安裝的筆記,特來(lái)向大家分享。

猶記得當(dāng)時(shí)Python版本切換的問(wèn)題困擾了我,以及整個(gè)項(xiàng)目組好久,因?yàn)榘凑照5姆椒?,安裝Python本身沒(méi)有問(wèn)題,且能基本使用,但使用的過(guò)程中出現(xiàn)了大量包引用以及其他問(wèn)題,后來(lái)發(fā)現(xiàn)這一切和本地庫(kù)的路徑,以及系統(tǒng)編碼和Python源碼編碼的沖突有關(guān),本文會(huì)著重說(shuō)明。

準(zhǔn)備工作

Python2.7.9源碼包:Python-2.7.9.tgz。

確保當(dāng)前系統(tǒng)安裝了gcc。

確保當(dāng)前系統(tǒng)可以安裝rpm包。

在更新Python版本前,安裝好需要使用的庫(kù)(所有要安裝的庫(kù)必須兼容新版本,即Python2.7.9),如tkintersqlite等。

安裝過(guò)程

在終端輸入python進(jìn)入Python解釋器界面,輸入如下內(nèi)容:

import sys
print sys.maxunicode

如果結(jié)果<=65535,跳過(guò)第3步。[1]

解壓縮Python-2.7.9.tgz文件,然后進(jìn)入Python-2.7.9源碼目錄下。

打開(kāi)configure文件,找到have_ucs4_tcl=no(大概在13047行),將其改為have_ucs4_tcl=yes,保存并退出。[2]

在終端執(zhí)行命令./configure --prefix=/usr/local/,然后執(zhí)行make && make install編譯安裝。

在終端執(zhí)行命令ln -sf /usr/local/bin/python2.7 /usr/bin/python,將系統(tǒng)默認(rèn)Python版本改為Python2.7.9。

在終端執(zhí)行python -V查看當(dāng)前版本。

筆者注:

[1]:如果sys.maxunicode <= 65535,則當(dāng)前系統(tǒng)下Python環(huán)境編碼為UCS2,> 65535則為UCS4,新環(huán)境需要與其一致。
[2]:該行是決定當(dāng)前Python編譯后編碼的關(guān)鍵,改成yes則為UCS4。

環(huán)境完善 yum

升級(jí)Python版本以后,會(huì)出現(xiàn)圖-1所示yum無(wú)法使用的情況,這是因?yàn)?b>yum本身是Python寫(xiě)的,而CentOS-6.5下的yum不支持Python2.7.9,這時(shí)候我們需要編輯/usr/bin/yum文件的第一行:#!/usr/bin/python,將其改為#!/usr/bin/python2.6即可。

其他庫(kù)和模塊

很多時(shí)候安裝了新Python環(huán)境后,會(huì)出現(xiàn)大量ImportError的異常情況——盡管我們?cè)谏?jí)環(huán)境前已經(jīng)安裝好了那些庫(kù)。

這種時(shí)候我們的第一反應(yīng)往往是重新安裝這些庫(kù),但這樣往往會(huì)比較麻煩(如果庫(kù)非常多),并容易造成本地庫(kù)資源重復(fù)和冗余,而且有部分庫(kù)在重新安裝了以后依然無(wú)法使用(譬如sqlite3),此時(shí)我們只需讓新Python使用本地庫(kù)即可(這也是在準(zhǔn)備工作階段說(shuō)過(guò)的那些安裝的庫(kù)必須兼容Python2.7.9環(huán)境的原因),具體操作如下:

1.在終端執(zhí)行/usr/bin/python2.6,進(jìn)入系統(tǒng)原自帶Python2.6的解釋器,執(zhí)行如下命令:

import sys
print ‘
’.join(sys.path)

來(lái)查看本地所有Python庫(kù)的路徑,一般如下:

/usr/lib64/python26.zip
/usr/lib64/python2.6
/usr/lib64/python2.6/plat-linux2
/usr/lib64/python2.6/lib-tk
/usr/lib64/python2.6/lib-old
/usr/lib64/python2.6/lib-dynload
/usr/lib64/python2.6/site-packages
/usr/lib/python2.6/site-packages

退出解釋器,執(zhí)行python命令進(jìn)入當(dāng)前Python環(huán)境的解釋器,并執(zhí)行同樣命令獲取Python2.7的庫(kù)目錄:

/usr/local/lib/python27.zip
/usr/local/lib/python2.7
/usr/local/lib/python2.7/plat-linux2
/usr/local/lib/python2.7/lib-tk
/usr/local/lib/python2.7/lib-old
/usr/local/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/site-packages

2.讓新Python環(huán)境使用本地庫(kù)有兩種方法:

把本地庫(kù)的路徑添加到系統(tǒng)環(huán)境變量中,執(zhí)行vim ~/.bashrc編輯環(huán)境變量文件,在文件末尾加上export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.6/lib-dynload/:/Other paths:/…,不同路徑用冒號(hào)分割,再執(zhí)行source ~/.bashrc立即在當(dāng)前終端生效,全局生效需要重啟操作系統(tǒng)。

把所需的庫(kù)復(fù)制或移動(dòng)到Python2.7的對(duì)應(yīng)目錄下,譬如sqlite3會(huì)拋ImportError: No module named _sqlite3異常,只需要將/usr/lib64/python2.6/lib-dynload/_sqlite3.so文件放到/usr/local/lib/python2.7/lib-dynload/目錄下即可。

前面在安裝過(guò)程中涉及到一個(gè)安裝編碼的問(wèn)題,如果Python2.7的編碼與本機(jī)Python編碼不一致,Python2.7將無(wú)法使用本地庫(kù),表面上在上述2)方法中可以解決sqlite3import問(wèn)題,但使用過(guò)程中會(huì)出現(xiàn)其他異常,這里一定要注意。

至此,Python升級(jí)完成。

后記

因?yàn)楫?dāng)時(shí)項(xiàng)目條件的原因,才有了CentOS-6.5下源碼編譯安裝Python2.7的奇怪需求,實(shí)際開(kāi)發(fā)中,建議大家直接使用自帶Python2.7Linux版本,會(huì)省去許多麻煩。

當(dāng)然了,有時(shí)候也確實(shí)會(huì)因?yàn)榄h(huán)境升級(jí),項(xiàng)目迭代等原因需要更新Python版本的,無(wú)論哪個(gè)版本,均可參考本文,原理大同小異。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/38083.html

相關(guān)文章

  • CentOS 6.5 編譯 rocksdb java

    摘要:因?yàn)樽詭У陌姹具^(guò)低,會(huì)導(dǎo)致編譯通不過(guò)。設(shè)置環(huán)境變量以上設(shè)置的環(huán)境變量都是臨時(shí)的,建議設(shè)置成永久全局變量。這時(shí)候如果出現(xiàn)錯(cuò)誤,重新運(yùn)行命令如果仍然報(bào)錯(cuò),比如打不開(kāi)某個(gè)文件,把下的全部刪掉。 Step1 安裝git服務(wù),用于從github拉取rocksdb源代碼.如果你想從源碼安裝最新版git,參考源碼安裝git # yum install git 安裝后可以使用git --versio...

    XanaHopper 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

DevTalking

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<