5 回答

TA貢獻1853條經(jīng)驗 獲得超6個贊
穩(wěn)妥的做法,先在測試環(huán)境預演方案,完善方案細節(jié),制定成可以遵循的文檔。
再定個時間(可能訪問量少的時候),按照文檔,在線上環(huán)境進行操作。
線上操作的時候,穩(wěn)妥的做法,也是推薦準備多個機器,比如現(xiàn)在的線上web-server 有 A/B/C 三臺機器,那么你先把流量都導到BC上,然后在A完全沒有處理請求后,再對A進行Python解釋器的升級。成功之后,再以此類推到其他機器。
預演方案大概也是如下步驟:
* 先在測試環(huán)境編譯Python3.6源碼。
* 將Python3.5啟動的服務,改為Python3.6啟動。
* 測試(請盡可能詳細),如果發(fā)現(xiàn)完全沒問題,那么說明該操作可以在線上環(huán)境同樣操作。
將預演方案應用于線上環(huán)境。盡可能在訪問量少的時候操作升級。盡可能考慮最嚴重的后果,考慮是否需要有災難處理的方法。

TA貢獻1871條經(jīng)驗 獲得超13個贊
3.6正式版已經(jīng)在12月23日發(fā)布了,所以現(xiàn)在升級3.6應該是沒有問題的;
自行閱讀下python3.6的升級公告,就可以知道有哪些東西不兼容3.5了;
推薦開發(fā)使用Python ide工具,比如pycharm,這樣在開發(fā)過程中,當你使用的語法,或者包在下一個版本會不兼容,或者不推薦的時候,會自動提示,比如你用Python2寫如下語句:
print "Test!"
就會提示說該print會在python3中不兼容
========啰嗦分割線==========
1.生產(chǎn)環(huán)境,Python的項目一定要自行編譯python版本,并使用virtualenv工具制作虛擬環(huán)境,這樣做的好處有很多:
版本切換很快,只要source下相應的版本就已經(jīng)切換版本了;
各個項目中的包依賴不會沖突,每個虛擬環(huán)境中的包都可以按照需求安裝相應的包版本,不會存在沖突;
更符合12規(guī)范
2.我很喜歡新的東西,當然是正式版的東西,一個新版本的出現(xiàn)必然有他的價值存在,不能因為一點不兼容就直接一刀砍,我現(xiàn)在這個公司,以前使用的django還是1.6版本的,現(xiàn)在是1.10,我來到這個公司第一件事情就是升級django,然后慢慢找不兼容(使用ide很容易將不兼容找出來)
添加回答
舉報