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

資訊專欄INFORMATION COLUMN

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

DevTalking / 2465人閱讀

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

筆者序

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

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

準(zhǔn)備工作

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

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

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

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

安裝過程

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

import sys
print sys.maxunicode

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

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

打開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

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

其他庫和模塊

很多時候安裝了新Python環(huán)境后,會出現(xiàn)大量ImportError的異常情況——盡管我們在升級環(huán)境前已經(jīng)安裝好了那些庫。

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

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

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

來查看本地所有Python庫的路徑,一般如下:

/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的庫目錄:

/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)境使用本地庫有兩種方法:

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

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

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

至此,Python升級完成。

后記

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

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

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

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

相關(guān)文章

  • CentOS 6.5 編譯 rocksdb java

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

    XanaHopper 評論0 收藏0

發(fā)表評論

0條評論

DevTalking

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<