溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python升級(jí)和兼容性配置是怎樣的

發(fā)布時(shí)間:2021-12-04 17:14:31 來(lái)源:億速云 閱讀:151 作者:柒染 欄目:互聯(lián)網(wǎng)科技

Python升級(jí)和兼容性配置是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

Python里面有個(gè)現(xiàn)象很奇怪,一般要學(xué)習(xí)Python都會(huì)糾結(jié)是學(xué)習(xí)2和3,這個(gè)差別和糾結(jié)Java5和Java6是完全不一樣的,因?yàn)镻ython里面的兼容性確實(shí)是個(gè)問(wèn)題,在《流暢的Python》中寫道:Guido(Python之父,仁慈的獨(dú)裁者)在設(shè)計(jì) Python3 的過(guò)程中,受一篇文章 “Python warts” 的影響,決定不向后兼容,否則無(wú)法修復(fù)大多數(shù)缺陷,然后Python很火,你要用Python,就得按照這個(gè)理念來(lái)。兼容性的問(wèn)題到了開發(fā)者這里就是個(gè)大麻煩。

Python2和3的差別很大,其實(shí)不兼容也還可以理解,當(dāng)做兩個(gè)分支也行,但是2.6和2.7的差別竟然也不小。有時(shí)候部署環(huán)境還是很糾結(jié)的。比如操作系統(tǒng)中默認(rèn)的Python版本是2.6,但是很多應(yīng)用中的最低要求是2.7,所以就得糾結(jié)這個(gè),為了應(yīng)用還是得升級(jí)。

首先是下載個(gè)2.7的安裝包。

wget http://python.org/ftp/python/2.7/Python-2.7.tar.bz2 --no-check-certificate

解壓 使用的選項(xiàng)是-j 這個(gè)和其他壓縮文件還是有些差別的。

tar -jxvf Python-2.7.tar.bz2

把解壓的Python目錄放到/user/local下面去。

mv Python-2.7 /usr/local/

在源碼包中,我們修改Modules/Setup.dist里面zlib的配置

把注釋去掉。

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

剩下的步驟就是編譯安裝了。

./configure

make all

如果這個(gè)時(shí)候出現(xiàn)了make的錯(cuò)誤,

make: *** [Modules/zlibmodule.o] Error 1

信息顯示是和zlib相關(guān)的信息,得重新安裝一個(gè)包zlib-devel

yum install zlib-devel

這個(gè)階段最好,后面就很輕松了。

make all

make install

make clean

make distclean

安裝步驟部署下來(lái),目前的系統(tǒng)層面的Python還是默認(rèn)的2.6,我們需要修改下默認(rèn)的配置,把/usr/bin下面的鏈接改一下。

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

mv /usr/bin/python /usr/bin/python2.6_bak --備份一下原來(lái)的。

重新創(chuàng)建軟鏈接

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

[root@oel641 Python-2.7]# python -V

Python 2.7

接下來(lái)就是yum的部分了,2.7版本中不兼容2.6的部分,我們就得修改下yum文件頭,把python的版本指向2.6

比如修改文件/usr/bin/yum的頭部?jī)?nèi)容為

#!/usr/bin/python2.6

接下來(lái)就是pip這樣的工具了。

安裝pip,先要配置setuptools,一步一步來(lái),倒還不算麻煩。

wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --no-check-certificate

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate -O - | python

然而如果后續(xù)你要安裝一些Python的模塊,比如psutil,mysql-connector的時(shí)候,使用yum安裝就有問(wèn)題了,因?yàn)閥um基于的是python 2.6,在2.7的庫(kù)文件里是沒(méi)有的。一種解決方式就是下載源碼包,源碼安裝。

折騰了一圈,終于可以使用psutil了,mysql-connector的配置也通了。

剩下的事情就是寫一些簡(jiǎn)單的腳本或者拿來(lái)主義,借鑒別人好的腳本內(nèi)容。調(diào)試一把,然后在這個(gè)基礎(chǔ)上補(bǔ)充一些定制的內(nèi)容就妥了。

Python升級(jí)和兼容性配置是怎樣的

看完上述內(nèi)容,你們掌握Python升級(jí)和兼容性配置是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI