Python升級和相容性配置
Python裡面有個現象很奇怪,一般要學習Python都會糾結是學習2和3,這個差別和糾結Java5和Java6是完全不一樣的,因為Python裡面的相容性確實是個問題,在《流暢的Python》中寫道:Guido(Python之父,仁慈的獨裁者)在設計 Python3 的過程中,受一篇文章 “Python warts” 的影響,決定不向後相容,否則無法修復大多數缺陷,然後Python很火,你要用Python,就得按照這個理念來。相容性的問題到了開發者這裡就是個大麻煩。
Python2和3的差別很大,其實不相容也還可以理解,當做兩個分支也行,但是2.6和2.7的差別竟然也不小。有時候部署環境還是很糾結的。比如作業系統中預設的Python版本是2.6,但是很多應用中的最低要求是2.7,所以就得糾結這個,為了應用還是得升級。
首先是下載個2.7的安裝包。
wget --no-check-certificate
解壓 使用的選項是-j 這個和其他壓縮檔案還是有些差別的。
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
如果這個時候出現了make的錯誤,
make: *** [Modules/zlibmodule.o] Error 1
資訊顯示是和zlib相關的資訊,得重新安裝一個包zlib-devel
yum install zlib-devel
這個階段最好,後面就很輕鬆了。
make all
make install
make clean
make distclean
安裝步驟部署下來,目前的系統層面的Python還是預設的2.6,我們需要修改下預設的配置,把/usr/bin下面的連結改一下。
/usr/local/bin/python2.7 -V
mv /usr/bin/python /usr/bin/python2.6_bak --備份一下原來的。
重新建立軟連結
ln -s /usr/local/bin/python2.7 /usr/bin/python
[root@oel641 Python-2.7]# python -V
Python 2.7
接下來就是yum的部分了,2.7版本中不相容2.6的部分,我們就得修改下yum檔案頭,把python的版本指向2.6
比如修改檔案/usr/bin/yum的頭部內容為
#!/usr/bin/python2.6
接下來就是pip這樣的工具了。
安裝pip,先要配置setuptools,一步一步來,倒還不算麻煩。
wget --no-check-certificate
wget --no-check-certificate -O - | python
然而如果後續你要安裝一些Python的模組,比如psutil,mysql-connector的時候,使用yum安裝就有問題了,因為yum基於的是python 2.6,在2.7的庫檔案裡是沒有的。一種解決方式就是下載原始碼包,原始碼安裝。
折騰了一圈,終於可以使用psutil了,mysql-connector的配置也通了。
剩下的事情就是寫一些簡單的指令碼或者拿來主義,借鑑別人好的指令碼內容。除錯一把,然後在這個基礎上補充一些定製的內容就妥了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2149015/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 升級pythonPython
- w10升級相容性未通過怎麼調_w10升級相容性未通過設定方法
- w10升級相容性未透過怎麼調_w10升級相容性未透過設定方法
- python版本升級Python
- Nginx配置以及熱升級Nginx
- Webpack4.0 升級配置Web
- [轉載]recovery 升級前相容性檢查(Vendor Interface Object)Object
- 軟體升級配置清單
- 老專案升級總結之程式碼相容性檢測
- Vue-cli升級webpack4以及各種loader升級配置VueWeb
- 阿里雲伺服器怎麼升級配置?升級有哪些限制?阿里伺服器
- 升級 Android 認證: 遠端配置Android
- Excel轉Json升級版-PythonExcelJSONPython
- MacOS升級python版本(親測)MacPython
- 升級所有Python安裝包Python
- kali安裝和升級
- AutoScaling彈性伸縮配置重大升級
- Python2升級Python3(1):xrangePython
- A Oracle Data Guard Broker 升級和降級Oracle
- python如何在cmd中升級pip?Python
- CentOS 6升級預設python版本CentOSPython
- gitlab的遷移和升級Gitlab
- 資料庫升級和工具資料庫
- beego的安裝和升級Go
- 全站HTTPS升級系列(三)nginx配置全站HTTPSHTTPNginx
- python3升級後的報錯Python
- ubuntu16.04升級python3.7.1教程UbuntuPython
- Centos7.4 python3 升級pipCentOSPython
- Nacos 爆重大 Bug!!不要升級,不要升級,不要升級
- 配置熱更新/支援 Reload、QUIC 橋接再升級UI橋接
- Sqlserver鎖升級的理解和例子SQLServer
- 執行緒和鎖,鎖升級執行緒
- Truffle 2.0升級3.0升級指南
- centos7中python2升級python3.8教程CentOSPython
- nginx 命令和訊號及平滑升級Nginx
- window系統下升級node和npmNPM
- ubuntu18.4 升級Python到3.8版本UbuntuPython
- oracle 10 rac 升級 10.2.0.1升級到10.2.0.5Oracle
- SpringCloud升級之路2020.0.x版-13.UnderTow 核心配置SpringGCCloud